Frage

Wenn ich meine Anwendung im Release-Modus kompiliert, fand ich, dass die Log4Net noch Debug-Informationen protokolliert; eine Idee, wie dieses Problem beheben?

Das ist meine App.Config-Datei:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>

  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="C:\Documents and Settings\test\Application Data\Log.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} - %m%n" />
      </layout>
    </appender>
  </log4net>

Habe ich vermisse etwas?

War es hilfreich?

Lösung

Es gibt nichts in Ihrer App.Config Datei log4net zu sagen, die Dinge anders in Release oder Debug-Modus zu tun. Wenn Sie anders sein wollen Anmeldung zwischen den beiden baut, müssen Sie Ihre Konfigurationsdatei ändern zwischen den beiden baut.

Ihre beste Wette ist wahrscheinlich eine App.Config für Release, einen für Debug, zu erstellen und dann der Beratung in der Frage Stackoverflow folgen:

Hinweis: Der Unterschied zwischen Ihrer Release und Debug-App.Config wird die folgende Zeile in der Debug-Version sein

<level value="DEBUG" />

im Vergleich zu der folgenden Zeile in der Release-Version (oder natürlich Sie ERROR wählen könnten oder fatal, wenn Sie wollen):

<level value="INFO" />

Andere Tipps

Vielleicht so etwas wie diese stattdessen versuchen? Auf was auch immer Mindestmaß Sie erhalten möchten.

<level value="WARN" />

Wenn Ihr App.Config wie folgt aussieht:

    <root>
      <level value="Info" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="RollingFileAppender" />
    </root>

Sie können den Log-Level von Code (setzen Sie den Code in Program.cs) ändern:


#if DEBUG
            log4net.Repository.ILoggerRepository RootRep;
            RootRep = LogManager.GetRepository(Assembly.GetCallingAssembly());

            XmlElement section = ConfigurationManager.GetSection("log4net") as XmlElement;

            XPathNavigator navigator = section.CreateNavigator();

            XPathNodeIterator nodes = navigator.Select("root/level");
            foreach (XPathNavigator appender in nodes)
            {
                appender.MoveToAttribute("value", string.Empty);
                appender.SetValue("Debug");
            }

            IXmlRepositoryConfigurator xmlCon = RootRep as IXmlRepositoryConfigurator;
            xmlCon.Configure(section);
#endif

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top