使用Log4net.dll庫的demo(一)

  • 原文地址:http://blog.csdn.net/linraise/article/details/50547149
  • 配置文件解析地址:http://blog.csdn.net/pfe_nova/article/details/12225349

注意: ConfigFile 可以指定相對路徑 和 絕對路徑。 eg: /log/xxxx.log  或者 d://log//xxxx.log

 

  • 1.引入庫log4net.dll

  • 2.展開項目文件下的Properties文件夾,打開AssemblyInfo.cs並在AssemblyInfo.cs中添加一行:在AssemblyInfo.cs中添加一行:(其中log4net.config對應配置文件名)

1

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

  

 

  • 3.添加log4net.config配置文件:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

  </configSections>

  <log4net>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

      <file value="log\logfile.log"/>

      <appendToFile value="true"/>

      <rollingStyle value="Composite"/>

      <datePattern value="yyyyMMdd"/>

      <maxSizeRollBackups value="10"/>

      <maximumFileSize value="1MB"/>

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>

      </layout>

    </appender>

    <root>

      <level value="All"/>

      <appender-ref ref="RollingLogFileAppender"/>

    </root>

  </log4net>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>

  </startup>

</configuration>

  

 

  • 4.添加一個公共的日誌管理類AppLog.cs

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

using System;

using System.Collections.Generic;

using System.Text;

using log4net;

using log4net.Config;

using System.IO;

 

 

namespace log4net

{

    /// <summary>

    /// 使用Log4net插件的log日誌對象

    /// </summary>

    public static class AppLog

    {

        private static ILog log;

 

        static AppLog()

        {

            XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));

            log = LogManager.GetLogger(typeof(AppLog));

        }

 

        public static void Debug(object message)

        {

            log.Debug(message);

        }

 

        public static void DebugFormatted(string format, params object[] args)

        {

            log.DebugFormat(format, args);

        }

 

        public static void Info(object message)

        {

            log.Info(message);

        }

 

        public static void InfoFormatted(string format, params object[] args)

        {

            log.InfoFormat(format, args);

        }

 

        public static void Warn(object message)

        {

            log.Warn(message);

        }

 

        public static void Warn(object message, Exception exception)

        {

            log.Warn(message, exception);

        }

 

        public static void WarnFormatted(string format, params object[] args)

        {

            log.WarnFormat(format, args);

        }

 

        public static void Error(object message)

        {

            log.Error(message);

        }

 

        public static void Error(object message, Exception exception)

        {

            log.Error(message, exception);

        }

 

        public static void ErrorFormatted(string format, params object[] args)

        {

            log.ErrorFormat(format, args);

        }

 

        public static void Fatal(object message)

        {

            log.Fatal(message);

        }

 

        public static void Fatal(object message, Exception exception)

        {

            log.Fatal(message, exception);

        }

 

        public static void FatalFormatted(string format, params object[] args)

        {

            log.FatalFormat(format, args);

        }

    }

}

  • 5.在任何你想寫日誌的地方使用,例如:

1

2

AppLog.Info("Info log");

AppLog.Error("Error log");

  


  • 6.經驗之談:不要把項目名稱起爲log4net,或任何數字在中間的名稱,否則引入log4net.dll的時候就會直接報錯
  • 7.當運行正常沒有創建日誌文件或者log = LogManager.GetLogger(typeof(AppLog))中log對象字段值爲false時,右擊log4net.config選擇屬性-->高級把複製到項目的值改爲始終複製
  •  8  類庫項目中好像不能實現此打印日誌功能,
發佈了37 篇原創文章 · 獲贊 119 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章