vs项目中使用Log4net记录日志

vs项目中使用Log4net记录日志

参考文章:https://www.cnblogs.com/kliine/p/10950859.html

  1. 添加Log4net引用
  2. 在AssemblyInfo.cs中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config", Watch = true)]
  1. 添加log4net.config配置文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <root>
    <level value="DEBUG" />
    <!--<appender-ref ref="SmtpAppender"/>-->
    <appender-ref ref="RollingLogFileAppender" />
    <!--<appender-ref ref="ColoredConsoleAppender"/>-->
  </root>

  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="logs/cmm.log" />
    <param name="AppendToFile" value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="1MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%02thread] %-5level %logger: %message%newline" />
    </layout>
  </appender>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <!--定义文件存放位置-->
    <file value="Log\\" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd'.txt'" />
    <staticLogFileName value="false" />
    <param name="MaxSizeRollBackups" value="100" />
    <layout type="log4net.Layout.PatternLayout">
      <!--每条日志末尾的文字说明-->
      <!--输出格式-->
      <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
      <conversionPattern value="%newline%date [%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n" />
    </layout>
  </appender>

  <appender name="ColoredConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger: %message%newline" />
    </layout>
  </appender>

  <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
    <to value="bobby.chopra@prcm.com" />
    <from value="TagFileUploader@prcm.com" />
    <subject value="TagFileUploader ERROR" />
    <smtpHost value="prc-mn-ex01" />
    <bufferSize value="512" />
    <lossy value="true" />
    <evaluator type="log4net.Core.LevelEvaluator">
      <threshold value="ERROR" />
    </evaluator>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger: %message%newline" />
    </layout>
  </appender>
</log4net>
  1. 右击生成出来的log4net.config→属性→将 “复制到输出目录” 的值改为 如果较新则复制。
    在这里插入图片描述

  2. 使用它(可以写个帮助类)

        public class LogHelper
    {
        private static readonly bool isShowConsole = true;//是否打印后台日志

        public static bool isShowInfoLog = false;//是否存储普通日志

        /// <summary>
        /// 输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="ex"></param>
        #region static void WriteErrorLog(Type t, Exception ex)

        public static void WriteErrorLog(Type t, Exception ex)
        {
            if (t != null)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(t);
                log.Error("Error", ex);
            }
            else
            {
                log4net.ILog log = log4net.LogManager.GetLogger("log");
                log.Error("Error", ex);
            }

            if (isShowConsole) Console.WriteLine(ex);
        }

        #endregion

        /// <summary>
        /// 输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="msg"></param>
        #region static void WriteErrorLog(Type t, string msg)

        public static void WriteErrorLog(Type t, string msg)
        {
            if (t != null)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(t);
                log.Error(msg);
            }
            else
            {
                log4net.ILog log = log4net.LogManager.GetLogger("log");
                log.Error(msg);
            }

            if (isShowConsole) Console.WriteLine(msg);
        }

        #endregion

        /// <summary>
        /// 输出日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="msg"></param>
        #region static void WriteInfoLog(Type t, string msg)

        public static void WriteInfoLog(Type t, string msg)
        {
            if (isShowInfoLog)
            {
                if (t != null)
                {
                    log4net.ILog log = log4net.LogManager.GetLogger(t);
                    log.Info(msg);
                }
                else
                {
                    log4net.ILog log = log4net.LogManager.GetLogger("log");
                    log.Info(msg);
                }
                if (isShowConsole) Console.WriteLine(msg);
            }
        }

        #endregion

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值