C# asp中的Log4Net:记录消息时不创建任何文件
我正在使用。它应该是直截了当的,但是没有创建日志文件,我也没有想法了 最简单的示例(Startup.cs): .csproj文件中的相关信息:C# asp中的Log4Net:记录消息时不创建任何文件,c#,asp.net,.net-core,C#,Asp.net,.net Core,我正在使用。它应该是直截了当的,但是没有创建日志文件,我也没有想法了 最简单的示例(Startup.cs): .csproj文件中的相关信息: <TargetFramework>netcoreapp2.0</TargetFramework> ... <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="2.1.0" /> ... <
<TargetFramework>netcoreapp2.0</TargetFramework>
...
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="2.1.0" />
...
<Content Update="log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
netcoreapp2.0
...
...
保存最新
log4net.config:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="DebugAppender" />
</root>
</log4net>
在log4net.config文件中,还尝试在注释中@pfx给出的
附录下添加
解决方案:
假设配置已连接;使用log4net.Appender.FileAppender而不是log4net.Appender.DebugAppender;DebugAppender
不会写入文件
这意味着log4net.config
需要这样更改:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<file value="C:\path\to\your\logfile.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender" />
</root>
</log4net>
还有,loggerFactory.AddLog4Net()
似乎不会自动查找log4net.config
(从项目文档中可以理解)。相反,您必须指定loggerFactory.AddLog4Net(“log4net.config”)代码>我通常使用App.Config。但是,这需要调用XmlConfigurator.Configure()。这里可能存在同样的问题?@GinjaNinja XmlConfigurator似乎是由nuget包提供的;使用log4net.Appender.FileAppender
而不是log4net.Appender.DebugAppender;DebugAppender`没有写入文件。@pfx就是这样。我将写一个关于如何解决它的完整答案。听到你的问题,我很抱歉,也很抱歉没有看到,因此,试图解决图书馆可能存在的问题。无论如何,最新版本的nuget应该在executing assembly文件夹中查找log4net.config文件,而不需要直接在扩展名上设置log4net.config文件名。
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<file value="C:\path\to\your\logfile.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender" />
</root>
</log4net>