之前做log4net,都是在app.config中配上一大段,然后每个类中都写上一句public readonly log4net.ILog log = log4net.LogManager.GetLogger("XXProject"));
这样做的缺点有两处:
1、繁,每个Project都要配置app.config!
2、通用方法中的Log因为写死的“XXProject”都会记到同一个日志中去,典型的就是Business不好配Log!
其实如果要求不高可以统一管理Log4Net,在类似Common的Project中新建一个类,在其中加入如下。这样代码都动态记到不同文档中去了!
public class Log { /// <summary> /// 标准日志 /// </summary> public static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Log)); }
另外在Common的app.config中配置唯一一次app.config。
<?xml version="1.0"?> <configuration> <configSections> <!-- log4net的定义 --> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <appSettings> </appSettings> <log4net> <!-- 日志文件部分log输出格式的设定 --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=""/> <param name="AppendToFile" value="true"/> <param name="MaxSizeRollBackups" value="10"/> <param name="MaximumFileSize" value="5MB"/> <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="时间:%d{yyy-MM-dd HH:mm:ss} %n级别:%level %n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> </layout> </appender> <logger name="Log"/> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="ALL"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> <startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
最后只要调用就行了。
浙公网安备 33010602011771号