Log4Net 不会在 Core 3.1 API Asp.Net bin 文件夹中创建日志



我正在尝试在Core 3.1 API中写入日志 Asp.NEt 但它没有写入bin文件夹。 相反,它在项目目录中的Temp文件夹中创建了日志文件。

Microsoft.Extensions.Logging.Log4Net.AspNetCore version 3.1.0

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="Temp" />
<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>

启动.cs

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddLog4Net();
}

此行将文件夹设置为 Temp:<file value="Temp" />

将其更改为bin文件夹的完整路径或相对于应用程序working directorybin文件夹的路径。

例如:..bin

默认情况下,Visual Studio 将运行您的项目并将working directory设置为项目路径。

在项目设置的"调试"部分中,可以手动覆盖要 bin 的working directory,也可以将"启动"模式从"Project"更改为"Executable",然后选择 bin 文件夹中的可执行文件。

log4net将始终使用当前目录(工作目录(作为配置文件中定义的realitve路径的根目录,因此当应用程序通过VS启动时,它指向项目文件夹,当应用程序直接在bin文件夹中启动时,日志文件将放置在bin文件夹中。

相关内容

最新更新