我正在努力理解在.Net Core 3.1应用程序中配置log 4 net的最简单方法。该应用程序使用log 4 net 2.0.8。所以:
有没有一种方法可以使用application.runtimeconfig.json文件进行配置?如果有,我会向应用程序添加什么代码来告诉它使用这些设置-类似于:
log4net.Config.XmlConfigurator.Configure();
字符串
如果这是不可能的,那么添加配置文件(比如log4net.xml)并告诉应用程序使用它的最简单方法是什么?
目前我想把所有的日志都指向一个文件,比如Temp.log。我看了很多log 4 net页面,但是他们要么讨论使用Assembly.Info.cs,这在新的.Net Core 3.1项目中不存在,要么似乎以编程方式设置log 4 net配置,这是我想避免的。我希望这很容易,所以如果我错过了一个明显的方法,我道歉。
5条答案
按热度按时间gorkyyrv1#
编辑我的回答一点,以明确核心不包括一个正常的文件记录器开箱即用.我的错.(截至5/19/2020)
我建议使用来自Microsoft的日志扩展而不是log 4 net,但这应该适合你。Core现在附带了一个日志记录器,它非常好,易于插入DI,并使用appsettings.json。如果你需要,我也可以提供一个示例。但这里是log 4 net基本示例。
从文件加载配置的示例控制台应用程序(文件设置为始终复制)
字符串
kyvafyod2#
我能够用以下方法回应:
首先,我已经创建了一个数据库和表与此代码:
型
第二,我在程序中创建了log4net.config文件。这是一个简单的配置,没有对日志消息进行自定义:
型
第三,我将下面的代码替换为
IHostBuilder
:型
第四,在
appsettings.json
中我插入了以下代码:型
最后,我使用了这些命令来享受登录的乐趣
型
祝你好运
fcy6dtqo3#
使用Microsoft.Extensions.Logging.Log4Net.AspNetCore很容易配置。
参考:https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore
9vw9lbht4#
对我来说,唯一起作用的是安装额外的Nuget包:
字符串
当然包括
Microsoft.Extensions.Logging.Log4Net.AspNetCore
1szpjjfi5#
CREATE DATABASE Log4netDb应为CREATE DATABASE Log4netDb