为自己的.net程序配置一个log4net

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="${APPDATA}\IMPlayer\Log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="0" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="All" />
    <appender-ref ref="RollingLogFileAppender" />
  </root>
</log4net>

1、这个是log4net的配置文件,可以写在app.config中,但是无论是独立创建一个log4net项目也好,还是在同一个项目下引用log4net,都需要将app.config这个文件输出到程序的运行目录,否则可能会因为无法读取配置文件而导致创建日志失败;

2、以下是日志输入调用的类,在项目调用loghelper.Instance.WriteLog(typeof(*),msg)就行了;

 public class loghelper
    {
        private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        private static loghelper _instance;
        public static loghelper Instance
        {
            get { return _instance ?? (_instance = new loghelper()); }
        }

        private loghelper()
        {
            var configFileInfo = new FileInfo("App.config");
            log4net.Config.XmlConfigurator.ConfigureAndWatch(configFileInfo);
        }

        #region static void WriteLog(Type t, Exception ex)
        public void WriteLog(Type t, Exception ex)
        {
            Log.Error(t, ex);
        }
        #endregion


        #region static void WriteLog(Type t, string msg)
        public  void WriteLog(Type t, string msg)
        {
            Log.Error(msg);
        }
        #endregion
    }

3、进过测试后发现,上面配置问题,只对单一进程有用,如果两个进程都需要输出日志信息,那就可能会产生2个文件,添加如下一行配置就可以解决问题:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值