我想同时在
我找不到任何类似的信息,因此请注意。
TL; DR
通过描述如下所示的程序集属性,即使在
Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using log4net; [assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config",Watch=true)] namespace console1 { class Program { static ILog logger = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { logger.Info("Hello World!"); } } } |
log4net.config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> </configuration> |
环境
- .NET Core SDK 3.1.100
-
Visual Studio代码1.41.1
- C#插件
- log4net 2.0.8
- Windows 10版本2004(操作系统内部版本1941.21)
长句子
没有日志输出。
我用
生成的项目中没有
查找解决方法。
我在网上搜索了一种解决方法。
在上一篇文章中,我找到了有关一种模式的信息,该模式用于自己使用XmlConfigurator设置Logger实例。
官方手册中也介绍了此方法。
它以这种方式工作,但是与log4net的通常可用性相比并不令人信服。
解决方法
Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using log4net; namespace console1 { class Program { static ILog logger; static void Main(string[] args) { //log4net使う準備ここから XmlDocument log4netConfig = new XmlDocument(); log4netConfig.Load(File.OpenRead(LOG_CONFIG_FILE)); var repo = LogManager.CreateRepository( Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy)); log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]); logger = LogManager.GetLogger(type); //log4net使う準備ここまで logger.Info("Hello World!"); } } } |
参考
如何为.NET Core配置log4net
如何在ASP.NET Core应用程序中使用Log4Net
预期代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using log4net; namespace console1 { class Program { static ILog logger = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { logger.Info("Hello World!"); } } } |
首先,log4net如何在.NET Framework中工作?
从以上解决方法来看,似乎等效的处理已在某处完成。
我试图找出.NET Framework如何设置log4net。
<详细信息>
- LogManager.GetLogger(Type)-