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=""logs_"yyyyMMdd".log"" />
<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
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力