log4net的配置及使用

log4net的配置及使用,第1张

概述网上查了有很多种写法和配置,结果百度出来都是几种方法混合写法,拷在一起结果还不能正常运行。因此把自己做成功的代码写上来做个备份。 运行环境:log4net 2.03版本,.net 4.5 大体步骤为: 1:新建一个log4net.config配置文件 2:创建一个Logger静态类写日志 具体步骤为: 一:在App或者Web根目录创建一个log4net.config文件,完整内容

网上查了有很多种写法和配置,结果百度出来都是几种方法混合写法,拷在一起结果还不能正常运行。因此把自己做成功的代码写上来做个备份。

运行环境:log4net 2.03版本,.net 4.5

大体步骤为:

    1:新建一个log4net.config配置文件    2:创建一个Logger静态类写日志

具体步骤为:

一:在App或者Web根目录创建一个log4net.config文件,完整内容如下:

        一定要注意这就是完整的配置文件内容,有些文章里面说要把内容拷在<configuration>节点下,结果不能正常写日志

<?xml version="1.0" enCoding="utf-8" ?><log4net>  <appender name="errorAppender" type="log4net.Appender.RollingfileAppender">    <filter type="log4net.Filter.LevelMatchFilter">      <levelToMatch value="ERROR" />    </filter>    <filter type="log4net.Filter.DenyAllFilter" />    <file value="Logs\err.log" />    <enCoding value="utf-8"/>    <preserveLogfilenameExtension value="true" />    <appendTofile value="true" />    <rollingStyle value="Date" />    <datePattern value="yyyyMMdd" />    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />    </layout>  </appender>  <appender name="infoAppender" type="log4net.Appender.RollingfileAppender">    <filter type="log4net.Filter.LevelMatchFilter">      <levelToMatch value="INFO" />    </filter>    <filter type="log4net.Filter.DenyAllFilter" />    <file value="Logs\info.log" />    <enCoding value="utf-8"/>    <preserveLogfilenameExtension value="true" />    <appendTofile value="true" />    <rollingStyle value="Date" />    <datePattern value="yyyyMMdd" />    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />    </layout>  </appender>  <appender name="deBUGAppender" type="log4net.Appender.RollingfileAppender">    <filter type="log4net.Filter.LevelMatchFilter">      <levelToMatch value="DEBUG" />    </filter>    <filter type="log4net.Filter.DenyAllFilter" />    <file value="Logs\deBUG.log" />    <enCoding value="utf-8"/>    <preserveLogfilenameExtension value="true" />    <appendTofile value="true" />    <rollingStyle value="Date" />    <datePattern value="yyyyMMdd" />    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />    </layout>  </appender>  <appender name="perfAppender" type="log4net.Appender.RollingfileAppender">    <filter type="log4net.Filter.LevelMatchFilter">      <levelToMatch value="INFO" />    </filter>    <filter type="log4net.Filter.DenyAllFilter" />    <file value="Logs\perf.log" />    <enCoding value="utf-8"/>    <preserveLogfilenameExtension value="true" />    <appendTofile value="true" />    <rollingStyle value="Date" />    <datePattern value="yyyyMMdd" />    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date %logger - %message%newline" />    </layout>  </appender>  <root>    <level value="ALL" />    <appender-ref ref="errorAppender" />    <appender-ref ref="infoAppender" />    <appender-ref ref="deBUGAppender" />  </root>  <logger name="Performance" additivity="false">    <level value="ALL" />    <appender-ref ref="perfAppender" />  </logger></log4net>

基本能看懂,这个配置方法定义了几个过滤器,把不同级别的日志写在不同名称的文件中,也可以修改配置写到一个日志文件中。

 

二:创建日志静态类

    /// <summary>    /// 框架日志类    /// </summary>    public class WRLogger    {        static ILog _logger = null;        /// <summary>        /// 默认日志类        /// </summary>        static ILog logger        {            get            {                if (_logger == null)                {                    log4net.Config.XmlConfigurator.Configure(new fileInfo("log4net.config"));                    _logger = LogManager.GetLogger("Performance");                }                return _logger;            }        }        /// <summary>        /// 记录信息日志        /// </summary>        /// <param name="msg"></param>        public static voID Info(string msg)        {            logger.Info(msg);        }        /// <summary>        /// 记录调试日志,主要用于sql或一些方法调用        /// </summary>        /// <param name="msg"></param>        public static voID DeBUG(string msg) {             logger.DeBUG(msg);        }        /// <summary>        /// 记录错误日志        /// </summary>        /// <param name="msg"></param>        public static voID Error(string msg) {            logger.Error(msg);        }        /// <summary>        /// 记录错误日志        /// </summary>        /// <param name="ex"></param>        public static voID Error(Exception ex)        {            logger.Error(ex);        }        /// <summary>        /// 记录错误日志        /// </summary>        /// <param name="ex"></param>        /// <param name="msg"></param>        public static voID Error(Exception ex,string msg)        {            logger.Error( msg+" "+ex.Message,ex);        }    }

其中:

log4net.Config.XmlConfigurator.Configure(new fileInfo("log4net.config"));这句话特别关键,载入配置文件,这种方式载入, 1:则不需要在“AssemblyInfo.cs”中写配置 2:也不需要在app.config或者web.config中写任何关于log4net的配置信息这样就可以直接使用了。
总结

以上是内存溢出为你收集整理的log4net的配置及使用全部内容,希望文章能够帮你解决log4net的配置及使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1028977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存