場景:
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文件的屬性要設置為“始終復制”:
image.png
3.到common類庫用nuget安裝log4net類庫;
4.到common類庫的AssemblyInfo.cs添加如下信息:
image.png
5.添加一個LogHelper類到common類庫:
public class LogHelper
{
public static readonly log4net.ILog log = log4net.LogManager.GetLogger("");
}
到此,只要引用了common的項目,都可以使用:
LogHelper.log.XXX
打印你的日志了。
image.png