ASP.NET Core web 项目添加日志系统log4net

2021-03-20  乐帮网

log4net netcore

在net core中使用log4net,首先得新建一个net core web项目,我在vs2019中以一个 net core pages项目为例,介绍如何使用log4net。在net core mvc框架下也是通用的。

(1)首先在Nuget中搜索log4net并安装包,这里我使用的是最新版2.0.12 ,然后我们在nuget上搜索Microsoft.Extensions.Logging.Log4Net.AspNetCore,后安装,仍然使用的是最新版 5.0.0。

(2)修改Program.cs,在CreateHostBuilder中添加log4net的配置
添加这行代码ConfigureLogging((ILoggingBuilder logBuilder) =>{  logBuilder.AddLog4Net();  })

整个方法如下:

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args).ConfigureLogging((ILoggingBuilder logBuilder) =>{
                logBuilder.AddLog4Net();
        })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

(3)修改日志级别等配置,这里我们新建项目时已经默认添加好了,可不用动,在appsettings.json中,相关内容如下:

 "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }

(4)在项目根目录添加日志输出配置net4net.confg ,并把属性设置成始终复制保证发布的时候配置文件一起发布

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
		<file value="logs\" />
		<appendToFile value="true" />
		<param name= "MaxSizeRollBackups" value= "30"/>
		<param name="maximumFileSize" value="100MB" />
		<param name="RollingStyle" value="Date" />
		<param name="DatePattern" value="&quot;logs_&quot;yyyyMMdd&quot;.log&quot;" />
		<param name="StaticLogFileName" value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date %5level %logger.%method [%line]: %message%newline %exception" />
		</layout>
	</appender>
	<root>
		<level value="ALL"/>
		<appender-ref ref="RollingFile" />
	</root>
</log4net>

(5)在项目使用log4net输出日志
在Index.cshtml.cs 中直接输出 内容如下

private readonly ILogger<IndexModel> _logger;
        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }
        public void OnGet()
        {
            _logger.LogInformation("我是来自lgo4net中的消息");
        }

会看到在bin\Debug\netcoreapp3.1里多了个logs文件夹,里面正是我们写的日志logs_20210320.log

2021-03-20 11:25:31,915  INFO Microsoft.Hosting.Lifetime.LogMessage [0]: Application started. Press Ctrl+C to shut down.
 2021-03-20 11:25:31,991  INFO Microsoft.Hosting.Lifetime.LogMessage [0]: Hosting environment: Development
 2021-03-20 11:25:31,991  INFO Microsoft.Hosting.Lifetime.LogMessage [0]: Content root path: D:\Demo\vkt.demo.log4net\vkt.demo.log4net
 2021-03-20 11:25:33,645  INFO vkt.demo.log4net.Pages.IndexModel.LogMessage [0]: 我是来自lgo4net中的消息


特提供了源码下载:https://pan.baidu.com/s/1-mE-w_I7GOJlv6m_wMo34w 

提取码见最下方按钮

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力