Log4net 发布时不写入
Log 4 Net does not write when published
我在 .Net Core 2.0 上使用 log4net,当从 visual studio 运行ning 时一切正常,但是当我发布我的应用程序(本地)时。文件已创建,但没有消息写入文件。 (当 运行 在调试和发布时)。这是我的配置:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="./logs/ids4" />
<datePattern value="yyyy-MM-dd.'txt'"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<maxSizeRollBackups value="100"/>
<maximumFileSize value="15MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level App %newline %message %newline %newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
我的AppSettings.Json:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
在我的启动文件中,我这样配置日志记录:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
loggerFactory.AddLog4Net();
//...
}
这也不是权限问题,因为文件仍在创建中,它只是空的。我最好的猜测是它与日志记录级别有关吗?我想在调试中发布会解决这个问题。
发布后如何让日志记录工作?
注意 我已经查看了其他一些 questions 关于此问题,但他们的问题似乎是该文件未复制到发布目录。 Log4Net.Config 在我的发布目录中,这不是问题所在
原来我们有多个 appsettings.json
还有 appsettings.Development.json
,
我把它们都改成使用:
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
一切都开始工作了。
我在 .Net Core 2.0 上使用 log4net,当从 visual studio 运行ning 时一切正常,但是当我发布我的应用程序(本地)时。文件已创建,但没有消息写入文件。 (当 运行 在调试和发布时)。这是我的配置:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="./logs/ids4" />
<datePattern value="yyyy-MM-dd.'txt'"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<maxSizeRollBackups value="100"/>
<maximumFileSize value="15MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level App %newline %message %newline %newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
我的AppSettings.Json:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
在我的启动文件中,我这样配置日志记录:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
loggerFactory.AddLog4Net();
//...
}
这也不是权限问题,因为文件仍在创建中,它只是空的。我最好的猜测是它与日志记录级别有关吗?我想在调试中发布会解决这个问题。
发布后如何让日志记录工作?
注意 我已经查看了其他一些 questions 关于此问题,但他们的问题似乎是该文件未复制到发布目录。 Log4Net.Config 在我的发布目录中,这不是问题所在
原来我们有多个 appsettings.json
还有 appsettings.Development.json
,
我把它们都改成使用:
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
一切都开始工作了。