3、配置文件
- public class LogImplement
- {
- private ILog logger;
- public LogImplement(ILog log)
- {
- this.logger = log;
- }
- public void Debug(object message)
- {
- this.logger.Debug(message);
- }
- public void Debug(object message, Exception e)
- {
- this.logger.Debug(message, e);
- }
- public void Warming(object message)
- {
- this.logger.Warn(message);
- }
- public void Warming(object message,Exception e)
- {
- this.logger.Warn(message, e);
- }
- public void Error(object message)
- {
- this.logger.Error(message);
- }
- public void Error(object message, Exception e)
- {
- this.logger.Error(message, e);
- }
- public void Info(object message)
- {
- this.logger.Info(message);
- }
- public void Info(object message, Exception e)
- {
- this.logger.Info(message, e);
- }
- }
- public class LogFactory
- {
- static LogFactory()
- {
- FileInfo configFile = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"Log.config");
- log4net.Config.XmlConfigurator.Configure(configFile);
- }
- public static LogImplement GetLogger(Type type)
- {
- return new LogImplement(LogManager.GetLogger(type));
- }
- public static LogImplement GetLogger(string str)
- {
- return new LogImplement(LogManager.GetLogger(str));
- }
- }
其中, 表示异常文件超过1M大小就自动新增文件;表示异常文件的路径;表示要支持的.net版本。至于其他属性在使用中自己可以慢慢体会。
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-2.0"/>
- </configSections>
- <log4net>
- <root>
- <appender-ref ref="ErrorLogFileAppender"/>
- <appender-ref ref="WarningFileAppender"/>
- <appender-ref ref="DebugLogFileAppender"/>
- </root>
- <!--记录warning-->
- <appender name="WarningFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="log\Warn.log"/>
- <appendToFile value="true"/>
- <maxSizeRollBackups value="10"/>
- <maximumFileSize value="1MB"/>
- <rollingStyle value="Size"/>
- <staticLogFileName value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
- </layout>
- <filter type="log4net.Filter.LevelRangeFilter">
- <param name="LevelMin" value="WARN"/>
- <param name="LevelMax" value="WARN"/>
- </filter>
- </appender>
- <!--记录错误-->
- <appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="log\Error.log"/>
- <appendToFile value="true"/>
- <maxSizeRollBackups value="10"/>
- <maximumFileSize value="1MB"/>
- <rollingStyle value="Size"/>
- <staticLogFileName value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
- </layout>
- <filter type="log4net.Filter.LevelRangeFilter">
- <param name="LevelMin" value="ERROR"/>
- <param name="LevelMax" value="ERROR"/>
- </filter>
- </appender>
- <!--记录调试日志-->
- <appender name="DebugLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="log\debug.log"/>
- <param name="AppendToFile" value="true"/>
- <param name="MaxSizeRollBackups" value="10"/>
- <param name="MaximumFileSize" value="1MB"/>
- <param name="StaticLogFileName" value="true"/>
- <param name="RollingStyle" value="Size"/>
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
- </layout>
- <filter type="log4net.Filter.LevelRangeFilter">
- <param name="LevelMin" value="DEBUG"/>
- <param name="LevelMax" value="DEBUG"/>
- </filter>
- </appender>
- <!--调试模式,输出日志到控制台-->
- <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
- <mapping>
- <level value="ERROR"/>
- <foreColor value="Red, HighIntensity"/>
- <!--<backColor value="Green" />-->
- </mapping>
- <mapping>
- <level value="DEBUG"/>
- <foreColor value="Yellow, HighIntensity"/>
- <backColor value="Green"/>
- </mapping>
- <layout type="log4net.Layout.PatternLayout">
- <footer value="--------------------------------------------------------------------"/>
- <param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
- </layout>
- <filter type="log4net.Filter.LevelRangeFilter">
- <param name="LevelMin" value="DEBUG"/>
- <param name="LevelMax" value="ERROR"/>
- </filter>
- </appender>
- </log4net>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
- </startup>
- </configuration>
5、调用
- public class RecordLog
- {
- public static void RecordException(Exception e)
- {
- LogImplement log = LogFactory.GetLogger(typeof(RecordLog));
- log.Error(e.Message + e.StackTrace);
- }
- }
- static void Main(string[] args)
- {
- try
- {
- string test = "123tr";
- int i = int.Parse(test);//制造一个异常
- }
- catch(Exception e)
- {
- RecordLog.RecordException(e);
- }
- }
来源: http://www.phpxs.com/code/1004570/