- 新建工程
- 用nuget安装log4net包
- 在assemblyinfo.cs文件里添加如下内容:
[assembly: log4net.Config.XmlConfigurator(ConfigFile="Log4Net.config", Watch=true)]
- 工程中创建一个文件名为log4net.config的xml文件,具体内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="applicationLog.log" /><!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<!--备份log文件的个数最多10个-->
<maximumFileSize value="2MB" />
<!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout"> <!--指定log的格式-->
<conversionPattern value="[%date] %thread -- %-5level -- %logger [%M] -- %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" /><!--指定将此级别及以上的log打印到log文件中-->
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>
注意:根据第4步的配置,应该把log4net的配置文件放到项目的bin/Debug 或者 bin/Release目录下,否则会出现找不到配置文件而无法创建logger对象。
- 在自己的类中创建log实例变量:
private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- 添加测试代码,例如:
log.Debug("Test Debug info");
log.Info("Test Info info");
-
运行程序后查看log文件是否正确
注意:如果配置输出log文件不带路径,则log文件和执行文件在一个路径下。
因为log4net.config文件和执行文件不在一个地方,每次修改log4net.config后记得手工复制到执行目录,否则没有修改后的效果。 -
实际使用时,可以修改log4net.config的文件属性中的“复制到输出目录项目”为“始终复制”,这种修改log4net.config后重新生成项目就会自动更新。
网友评论