参考前人的文献:
- 点击解决方案下的引用,右键后选择“管理NuGet程序包”,输入log4net点击安装。
- 安装完成后,解决方案下的App.config进行配置。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--添加configSections并放在前面,里面填写log4net的配置说明-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<!--添加log4net的配置-->
<log4net>
<logger name="checkLog"> <!--log4net工厂模式取对应的log配置-->
<level value="ALL"/>
<appender-ref ref="SysAppender"/> <!--格式文件-->
</logger>
<appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\" /> <!--路径-->
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd_HHmm".log"" /> <!--日期格式-->
<param name="RollingStyle" value="Date" />
<!--信息日志布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
- AssemblyInfo.cs添加如下
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
- 在代码中添加对应的代码
private log4net.ILog deLog = log4net.LogManager.GetLogger("checkLog");
//调用
public Form1()
{
InitializeComponent();
try
{
deLog.Info("read file in");
logReader = new StreamReader("./remind.txt", Encoding.Default); //注意这个Encoding.Default可以避免中文乱码
string lineReadIn = logReader.ReadLine();
while(null != lineReadIn){
deLog.Info("line.." + lineReadIn);
checkedListBox1.Items.Add(lineReadIn);
lineReadIn = logReader.ReadLine();
}
}
catch (Exception e) {
MessageBox.Show("找不到文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
PS:.NET文件的默认编码也是Unicode。除非另外指定,StreamReader的默认编码为Unicode,而不是当前系统的ANSI代码。但是文档大部分还是以ANSI编码存储,中文文本使用的是GB2312,所以在读取文本的时候要指定编码格式。