C#中异常的记录——log4net

来源:互联网 发布:面向对象编程 表情包 编辑:程序博客网 时间:2024/06/06 01:19

C#中异常的记录也有一个模板,就是log4net。多的就不说了直接看怎么用的吧。
1、引用log4net.dll。
2、实现log4net的方法。
 

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));        }    }

3、配置文件

<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>

其中, <maximumFileSize value="1MB"/>表示异常文件超过1M大小就自动新增文件;<file value="log\Warn.log"/>表示异常文件的路径;<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>表示要支持的.net版本。至于其他属性在使用中自己可以慢慢体会。
4、记录异常

 public class RecordLog    {        public static void RecordException(Exception e)        {            LogImplement log = LogFactory.GetLogger(typeof(RecordLog));            log.Error(e.Message + e.StackTrace);        }    }

5、调用

       static void Main(string[] args)        {            try            {                string test = "123tr";                int i = int.Parse(test);//制造一个异常            }            catch(Exception e)            {                RecordLog.RecordException(e);            }        }

运行后,异常文件的位置如图:

记录异常:

详细工程下载:
http://download.csdn.net/detail/yysyangyangyangshan/4857624

原创粉丝点击