场景:
ASP.NET MVC有个类库common,是个基础公共类库,供所有其它类引用,想在该类库添加log4net,让其它引用common的类,可以记录日志(包括web项目);
步骤:
1.在web项目跟目录下,建立一个log4net.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
</system.web>
<configSections>
<!--添加配置节点-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--日志保存到文件里面 txt-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径 网站根目录下面的logs-->
<param name= "File" value= "logs\\"/>
<!--是否是向文件中追加日志-->
<param name= "AppendToFile" value= "true"/>
<!--log保留天数-->
<param name= "MaxSizeRollBackups" value= "10"/>
<!--日志文件名是否是固定不变的-->
<param name= "StaticLogFileName" value= "false"/>
<!--日志文件名格式为:2017-08-31.log 保存位置是logs\2017\03\2017-08-31.log-->
<param name= "DatePattern" value= "yyyy\\MM\\yyyy-MM-dd".log""/>
<!--日志根据日期滚动-->
<param name= "RollingStyle" value= "Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<!--配置可输出日志级别-->
<level value="all"/>
<!--应用配置-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
2.log4net.config文件的属性要设置为“始终复制”:
3.到common类库用nuget安装log4net类库;
4.到common类库的AssemblyInfo.cs添加如下信息:
5.添加一个LogHelper类到common类库:
public class LogHelper
{
public static readonly log4net.ILog log = log4net.LogManager.GetLogger("");
}
到此,只要引用了common的项目,都可以使用:
LogHelper.log.XXX
打印你的日志了。