Log4Net FileAppender не работает - PullRequest
0 голосов
/ 25 июня 2018

Мы уже давно используем в своей базе данных appender (AdoNetAppender). Мы сейчас работаем над развертыванием и не видим никаких ошибок в базе данных. у нас есть одна мысль: соединение с базой данных блокируется брандмауэром, но вы уже можете видеть, куда это входит в круг боли.

Я добавил RollingFileAppender, FileAppender, попытался использовать bufferingForwarder и перепробовал все в зеленом мире stackoverflow, чтобы решить эту проблему, и абсолютно ничего не меняется. Я даже удалил ссылку на AdoNetAppender, и теперь он вообще не регистрирует ошибки, тогда как с AdoNetAppender он регистрировал ошибки дважды - один раз для AdoNetAppender, один раз для FileAppender.

Мой код xml:

    <root>
      <level value="ALL"/>
      <appender-ref ref="RollingFileAppender"/>
      <appender-ref ref="AdoNetAppender"/>
    </root>
    <appender name="AdoNetAppender">
        <!--working xml. No need to post this information-->
    </appender>
    <appender name="BufferingForwarder" type="log4net.Appender.BufferingForwardingAppender">
        <bufferSize value="5" />
        <lossy value="false" />
        <appender-ref ref="fileAppender" />
        <!-- or any additional appenders or other forwarders -->
    </appender>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\log4net.log"/>
      <datePattern value="yyyy-MM-dd'-FULL.log'" />
      <appendToFile value="true"/>
      <preserveLogFileNameExtension value="true"/>
      <rollingStyle value="Size"/>      
      <maximumFileSize value="250KB"/>      
      <maxSizeRollBackups value="-1"/>
      <staticLogFileName value="false"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>

Мой код c #:

(с использованием Logger: ExceptionFilterAttribute)

private static ILog Log;
private static ILog FileLog;
private static bool _isConfigured = false;

private static void ConfigureLogger() 
{
    if (_isConfigured) return;
    XmlConfigurator.Configure();
    FileLog = LogManager.GetLogger("RollingFileAppender")
    Log = LogManager.GetLogger("AdoNetAppender")
    _isConfigured = true;
}
public static void Error(string message, Exception e) {
    ConfigureLogger();
    Log.Error(message, e);
}
public override void OnException(HttpActionExecutedContext context) 
{
    Error("Unexpected error occurred", context.Exception);
    ConfigureLogger();
    if (FileLog != null)
        FileLog.Error("Unexpected Error Occurred", context.Exception);
}
...