I'm new to log4net & I need to log an API response. This is how I configured it in 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>
And this is the code I'm using to log the response.
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);
If I changed response.Content to "Test message" it logs normally. I believe the issue is that by the time this line is executed log.Info(response.Content); we aren't sure if the API has responded or no since it's async request.
How can I log the response as soon as the API responds without compromising the performance?