zoukankan      html  css  js  c++  java
  • log4net独立配置文件配置(winfrom)(转)

    log4net配置很多,具体配置步骤不细说,具体说出个人遇到的问题。

    在winfrom和web应用程序中配置,在默认配置文件配置都没问题,因为EF也写在默认配置文件中,就会冲突解决办法就是将log4.config单独写个配置文件。个人在独立出来的时候,一直读取配置文件失败,整了老半天发现是配置文件-属性-复制到输出目录设置为不复制了。

    具体配置步骤:

    第一步:写配置文件(网上很多,本人贴下我的)记住设置:配置文件-属性-复制到输出目录设置为始终复制

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
    
      <log4net>
        <!--错误日志配置 :其中name 可以程序员自己定义,但是这个名字一定要和 <logger name="logerror">下面的
        <appender-ref ref="ErrorAppender"/> 中 ref的值保持一致 -->
        <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
          <!--日志文件存储的位置是:Log\LogError\-->
          <param name="File" value="Log\LogError\" />
          <!--表示将内容以追加的形式,保存到日志文件中-->
          <param name="AppendToFile" value="true" />
          <!--每天的日志备份数可以有100个-->
          <param name="MaxSizeRollBackups" value="100" />
          <!--表示每个日志文件的大小只能是10M-->
          <param name="MaxFileSize" value="10240" />
          <!--文件名称是固定格式的-->
          <param name="StaticLogFileName" value="false" />
          <!--文件名称是固定格式为:yyyyMMdd-->
          <param name="DatePattern" value="yyyyMMdd" />
          <!--每天都是以yyyyMMdd来进行命名文件-->
          <param name="RollingStyle" value="Date" />
          <!--设定写入的日志格式-->
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n " />
          </layout>
        </appender>
        <logger name="logerror">
          <!--这个节点注释掉就不会出现两次-->
          <!--这个配置文件,如果配置成ALL:表示可以记录 1、信息日志(Info)  2、警告日志(Warn) 3、错误日志(Error)-->
          <level value="ALL"/>
          <level value="ALL" />
          <appender-ref ref="ErrorAppender" />
        </logger>
    
        <root>
          <level value="ALL" />
          <appender-ref ref="ErrorAppender" />
        </root>
      </log4net>
    </configuration>

     

    第二步:引入log4net.dll文件。

    第三步:写log4Helper帮助类,里面如果是在默认的配置文件写入的配置文件,直接调用,将构造函数注释打开,就可以调用了。单独配置需要第四步。

     

    public class LogHelper
        {
            //通过配置文件的logerror 进行日志写入对象的实例化
            //public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");   //选择<logger name="logerror">的配置 
            private static log4net.ILog logerror = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);//动态获得名称
    
            //在app.config中配置在构造函数中注册
            static LogHelper()
            {
                //SetConfig();
            }
    
            /// <summary>
            /// 初始化web.config中的<log4net>节点中的配置
            /// </summary>
            public static void SetConfig()
            {
                log4net.Config.XmlConfigurator.Configure();
            }
    
            /// <summary>
            /// 写入信息日志
            /// </summary>
            /// <param name="msg"></param>
            public static void WriteInfo(string msg)
            {
                if (logerror.IsInfoEnabled)//配置文件没有注册成功返回为false
                {
                    logerror.Info(msg);
                }
            }
    
            /// <summary>
            /// 写入错误日志
            /// </summary>
            /// <param name="msg"></param>
            public static void WriteError(string msg)
            {
                if (logerror.IsErrorEnabled)
                {
                    logerror.Error(msg);
                }
            }
    
            public static void WriteWran(string msg)
            {
                if (logerror.IsWarnEnabled)
                {
                    logerror.Warn(msg);
                }
            }
        }

    第四步:在Properties中加入如下配置:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
    目的是在项目启动的时候就会去读取配置文件。(web程序加的代码不一样)

    OK配置成功。

    原文地址:https://www.cnblogs.com/zhangxiaoyong/p/6043283.html

  • 相关阅读:
    再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法
    Linux安装aria2
    POJ 3335 Rotating Scoreboard 半平面交
    hdu 1540 Tunnel Warfare 线段树 区间合并
    hdu 3397 Sequence operation 线段树 区间更新 区间合并
    hud 3308 LCIS 线段树 区间合并
    POJ 3667 Hotel 线段树 区间合并
    POJ 2528 Mayor's posters 贴海报 线段树 区间更新
    POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
    POJ 3468 A Simple Problem with Integers 线段树成段更新
  • 原文地址:https://www.cnblogs.com/for917157ever/p/14229690.html
Copyright © 2011-2022 走看看