在项目直接引用log4net.dll文件,或者通过Nuget安装(本文使用1.2.10版本)

在主项目下添加log4net.config文件,比如有Main主项目、Common工具项目等多个项目时,需要把log4net.config放在Main项目下
- "1.0" encoding="utf-8" ?>
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
- configSections>
-
- <log4net>
- <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
-
- <param name= "File" value= "logs/info/"/>
-
- <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
-
- <param name= "AppendToFile" value= "true"/>
-
-
-
- <param name= "StaticLogFileName" value= "false"/>
-
- <param name= "DatePattern" value= "yyyy-MM-dd'.txt'"/>
-
- <param name= "RollingStyle" value= "Date"/>
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%n%d [%t] %-5p %c [%L] - %m %n" />
- layout>
-
- <filter type="log4net.Filter.LevelRangeFilter">
- <levelMin value="DEBUG" />
- <levelMax value="WARN" />
- filter>
- appender>
- <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
-
- <param name= "File" value= "logs/Error/"/>
-
- <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
-
- <param name= "AppendToFile" value= "true"/>
-
-
-
- <param name= "StaticLogFileName" value= "false"/>
-
- <param name= "DatePattern" value= "yyyy-MM-dd'.txt'"/>
-
- <param name= "RollingStyle" value= "Date"/>
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%n%d [%t] %-5p %c [%L] - %m %n" />
- layout>
-
- <filter type="log4net.Filter.LevelRangeFilter">
- <levelMin value="ERROR" />
- <levelMax value="FATAL" />
- filter>
- appender>
-
- <root>
-
- <level value="all" />
- <appender-ref ref="InfoAppender"/>
- <appender-ref ref="ErrorAppender"/>
- root>
- log4net>
- configuration>

修改 log4net.LogManager.GetLogger 获取实例所在的项目的assmbly.cs(我在Common工具项目添加了一个LogHelper.cs的类,日志使用时从Common.LogHelpr里面获取Logger实例;所以修改的是Common工具项目的assmbly.cs)
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
- //public log4net.ILog Logger = log4net.LogManager.GetLogger(typeof(ClassName));
- //Logger.Info("这里是普通日志");
- //Logger.Error("这里是错误日志");
-
- //Common项目
- public class LogHelper
- {
- public static ILog GetLogger<T>()
- {
- return log4net.LogManager.GetLogger(typeof(T));
- }
- }
-
-
- //其他项目使用日志时
- private ILog logger = LogHelper.GetLogger
(); - logger.Info("测试日志打印");