• 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

  • 相关阅读:
    由1433端口入侵,浅谈sqlserver安全 (转)
    使用 Aircrack-ng 破解 WEP 和 WPA/WPA2 加密的 Wi-Fi 密码。(转)
    ZZmsvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义 .的分析解决办法 (转)
    提高D3js力导向图加载速度(转)
    Asp.Net实现FORM认证的一些使用技巧(转)
    Windows Server 2008 R2 备份和恢复 (转)
    搭建Go开发及调试环境(LiteIDE + GoClipse) -- Windows篇
    Beego源码分析(转)
    go语言实现一个简单的登录注册web小程序
    从无线安全到内网渗透(转)
  • 原文地址:https://www.cnblogs.com/for917157ever/p/14229690.html
Copyright © 2020-2023  润新知