【发布时间】:2021-01-03 01:36:07
【问题描述】:
我是 log4net 的新手,我需要记录 API 响应。 这就是我在 web.config 中配置它的方式
<log4net>
<appender name="StandardAppenderSync" type="log4net.Appender.RollingFileAppender">
<!-- The standard pattern layout to use -->
<file value="log\Log_" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="5GB" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd'.txt'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="StandardAppenderSync" />
</root>
</log4net>
这是我用来记录响应的代码。
var client = new RestClient(url);
var request = new RestRequest(Method.POST);
request.AddHeader("header1", header1);
request.AddHeader("header2", header2);
request.AddParameter("parameter1", parameter1);
request.AddParameter("parameter2", parameter2);
IRestResponse response = await client.ExecuteAsync(request);
ILog log = LogManager.GetLogger("mylog");
log.Info(response.Content);
如果我将response.Content 更改为"Test message",它会正常记录。我认为问题在于,在执行此行时 log.Info(response.Content); 我们不确定 API 是否已响应,因为它是异步请求。
如何在 API 响应后立即记录响应而不影响性能?
【问题讨论】:
标签: c# logging asp.net-web-api log4net