В нашем проекте около 95% наших журналов форматируются в соответствии с настроенным нами шаблоном преобразования. Однако время от времени мы получаем блуждающий журнал, который не соответствует.
Это наша конфигурация
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="Logs\nsc.latest.log"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10 " />
<maximumFileSize value="100MB" />
<rollingStyle value="Size"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value='{ "level":"%level", "timestamp":"%utcdate{yyyy-MM-ddTHH:mm:ss.fffZ}", "logger":"%logger", "message":"%message" }%newline' />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
и наш код запуска
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace NSCApp
{
public class MvcApplication : System.Web.HttpApplication
{
log4net.Config.XmlConfigurator.Configure();
///Rest of code...
}
}
и это это то, что мы обычно получаем, это то, что мы хотим
{ "level":"INFO", "timestamp":"2020-02-05T23:46:59.295Z", "logger":"", "message":"{"Application":"NSC App","ExpirationDateTime":"2020-02-05T22:46:59.2926871-07:00","SessionId":"00D80000000K5KK!AQsAQAAM7dU1tiCe1BHXL2NDcMiJU4prh8CnAgnHQ8jf6cYLYZgVo2FfkwFNm10b1eUA0gBSFPn_GFhDKwmye79fNQXoH2Cl","User":"nscapi@extraspace.com"}" }
, но иногда мы получаем такое, как это
System.ArgumentNullException: Value cannot be null.
Parameter name: input
at System.Text.RegularExpressions.Regex.Replace(String input, String replacement)
at System.Text.RegularExpressions.Regex.Replace(String input, String pattern, String replacement)
at CodeBase.Tools.ConvertToAlphaNumeric(String term) in C:\Code\TestRepos\extraspace.web.codebase\Tools.cs:line 2019
at CodeBase.Salesforce.LookupReservation(Config config, String opptyID) in C:\Code\TestRepos\extraspace.web.codebase\Salesforce.cs:line 1074
Есть мысли о том, почему это может происходить?
Есть ли в журнале 4net глобальные перехваты, которые не соответствуют указанному шаблону преобразования?
Обновление
Я только что обнаружил, что блуждающие журналы происходят из функции Application_Error в файле Global.asax.cs.
Это выходит за рамки конфигурации журнала 4net в файле web.config?