asp.net core3.1中用log4net工具类打印日志到txt文件中

7 篇文章 0 订阅
1 篇文章 0 订阅

1、创建类库(例如CommonTools),引用log4net包,如下图:

 

2、写工具类(我这里是LogHelper,可自定义),代码如下:

using log4net;
using log4net.Config;
using log4net.Repository;
using System;
using System.IO;

namespace CommonTools.Log4net
{
    public static class LogHelper
    {
        private static readonly ILoggerRepository Repository = LogManager.CreateRepository("NETCoreRepository");
        private static readonly ILog Log = LogManager.GetLogger(Repository.Name, "NETCorelog4net");

        /// <summary>
        /// 构造方法
        /// </summary>
        static LogHelper()
        {
            XmlConfigurator.Configure(Repository, new FileInfo("log4net.config"));
        }

        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Info(string message)
        {
            Log.Info(message);
        }

        /// <summary>
        /// 写错误日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="ex"></param>
        public static void Error(Exception ex, string message = null)
        {
            if (string.IsNullOrEmpty(message))
                message = ex.Message;

            Log.Error(message, ex);
        }

        /// <summary>
        /// 写错误日志
        /// </summary>
        /// <param name="message"></param>
        public static void Error(string message)
        {
            Log.Error(message);
        }
    }
}

 

3、在需要使用日志的应用项目的根目录添加log4net.config配置文件,如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net debug="false">

    <appender name="info" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="C:\logfiles\log4net\info\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="-1"/>
      <param name="MaximumFileSize" value="5MB"/>
      <param name="RollingStyle" value="Composite" />
      <param name="DatePattern" value="yyyyMMdd\\HH&quot;.log&quot;" />
      <param name="StaticLogFileName" value="false" />
      <param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <!--%d, %date :表示当然的时间
        %level : 表示日志的级别
        %logger, %c:表示日志产生的主题,通常是所在的类名,便于定位问题
        %m, %message :表示日志的具体内容
        %n, %newline: 换行
        -->
        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n " />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="INFO" />
      </filter>
    </appender>

    <appender name="error" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="C:\logfiles\log4net\error\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="-1"/>
      <param name="MaximumFileSize" value="5MB"/>
      <param name="RollingStyle" value="Composite" />
      <param name="DatePattern" value="yyyyMMdd\\HH&quot;.log&quot;" />
      <param name="StaticLogFileName" value="false" />
      <param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%x] %n%m %n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value="ERROR" />
      </filter>
    </appender>

    <root>
      <level value="ALL"></level>
      <appender-ref ref="info"/>
      <appender-ref ref="error"/>
    </root>

  </log4net>

</configuration>

 

4、使用(例如在mvc中使用,引用类库CommonTools、添加log4net.config配置文件),代码如下:

using Microsoft.AspNetCore.Mvc;
using CommonTools.Log4net;

namespace Admin.Controllers
{
    public class HomeController : BaseController
    {
        public ActionResult Index()
        {
            LogHelper.Error("123");
            return View();
        }
    }
}

LogHelper.Error("123")即可,非常方便,在webapi、控制台程序等项目中一样通用。

 

5、我是把日志输出到C盘的logfiles文件夹下,如下图:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值