dotnet core 6.0 配置使用log4net

12 篇文章 3 订阅
3 篇文章 0 订阅

开发工具 vs2022社区版,.net 6.0

一、NuGet添加 Microsoft.Extensions.Logging.Log4Net.AspNetCore

二、在项目根目录添加log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
		<param name="File" value="Log//" />
		<param name="AppendToFile" value="true" />
		<param name="MaximumFileSize" value="102KB" />
		<param name="MaxSizeRollBackups" value="10" />
		<param name="StaticLogFileName" value="false" />
		<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
		<param name="RollingStyle" value="Composite" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %5level  %logger.%method [%line] - %newlineMESSAGE: %message -  EXCEPTION: %exception%newline"  />
		</layout>
	</appender>
	<root>
		<level value="ALL"/>		
		<appender-ref ref="InfoAppender" />
	</root>
</log4net>

 

三、添加LogHelper类

public class LogHelp
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
       
        private static object thisLock = new object();
        /// <summary>
        /// 将内容记录到info
        /// 客户端调用写法如下:LogHelp.WriteLog("123");  
        /// </summary>
        /// <param name="info"></param>
        /// <param name="realWriteLog"></param>
        public static void WriteLog(string info, bool realWriteLog = true)
        {
            lock (thisLock)
            {
                if (realWriteLog)
                {
                    if (loginfo.IsInfoEnabled)
                    {
                        loginfo.Info(info);
                    }
                }
            }
        }


        /// <summary>
        /// 将内容记录到error
        /// 客户端调用写法如下:LogHelp.WriteLog("456",new Exception ("错误"));
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        /// <param name="realWriteLog"></param>
        public static void WriteLog(string info, Exception se, bool realWriteLog = true)
        {
            lock (thisLock)
            {
                if (realWriteLog)
                {
                    if (loginfo.IsInfoEnabled)
                    {
                        loginfo.Info(info,se);
                    }
                }
            }
        }
        /// <summary>
        /// 日志保留多少天
        /// </summary>
        /// <param name="logFilePath"></param>
        /// <param name="saveDays"></param>
        public static void SaveLogDays(string logFilePath, int saveDays)
        {
            lock (thisLock)
            {
                string[] logFileName = Directory.GetFiles(logFilePath);
                if (logFileName.Count() > saveDays)
                {
                    File.Delete(logFileName[0]);
                }
            }
        }
    }

四、在appsetting.json中添加

"Log4NetCore": {
    "Name": "MyLog",
    "LoggerRepository": "Fantastic",
    "OverrideCriticalLevelWith": "Critical",
    "Watch": false,
    "UseWebOrAppConfig": false    
  }

五、在Program.cs文件中添加

builder.Logging.AddLog4Net("log4net.config");

 

六、调用loghelp

LogHelp.WriteLog("msg");
LogHelp.WriteLog("msg",new Exception("testLog"));

输出结果展示:

 

 

 

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值