FuYGの博客

菜鸟到鸵鸟之质的飞跃

0%

使用log4net记录log

winform项目中使用log4net

安装log4net

项目 - 管理Nuget程序包,在浏览框中输入 log4net - 回车 - 选择 log4net - 安装。

添加log4net.config

在工程目录下添加log4net.config文件, 设置log4net.config的文件属性,自动把log4net.config的内容复制到.exe文件所在的目录

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
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
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<!--log4net配置文件-->
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="InfoAppender"/>
<appender-ref ref="ErrorAppender"/>
<!--<appender-ref ref="ConsoleAppender"/>-->
</root>
<!--运行状态信息-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<File value="log/log_info.txt"/>
<!--是否是向文件中追加日志-->
<AppendToFile value="true"/>
<!--创建新文件的方式-->
<RollingStyle value="Size"/>
<!--log文件大小-->
<MaximumFileSize value="5M"/>
<!--备份日志数目-->
<MaxSizeRollBackups value="30"/>
<!--日志文件名是否是固定不变的-->
<StaticLogFileName value="true"/>
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<!--输出格式-->
<layout type="log4net.Layout.PatternLayout">
<!--日期 [级别]-->
<conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
</layout>
<!--控制器,只记录级别在INFO-INFO之间的信息-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<!--运行错误信息-->
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<File value="log/log_error.txt"/>
<!--是否是向文件中追加日志-->
<AppendToFile value="true"/>
<!--创建新文件的方式-->
<RollingStyle value="Size"/>
<!--log文件大小-->
<MaximumFileSize value="5M"/>
<!--备份日志数目-->
<MaxSizeRollBackups value="30"/>
<!--日志文件名是否是固定不变的-->
<StaticLogFileName value="true"/>
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<!--输出格式-->
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
</layout>
<!--控制器,只记录级别在WARN-FATAL之间的信息-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL" />
</filter>
</appender>
</log4net>
</configuration>

修改AssemblyInfo.cs

在工程 - Properties - AssemblyInfo.cs文件中新增如下一行代码:

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

使用

1
2
3
4
5
public static readonly log4net.ILog logInfo = log4net.LogManager.GetLogger("InfoLog");
public static readonly log4net.ILog logError = log4net.LogManager.GetLogger("Error");

logInfo.Info("logInfo.Info");
logError.Error("logError.Error");

查看是否生成log