Pergunta

Quando eu compilei meu aplicativo no modo de versão, eu achei que o Log4Net ainda registra informações de depuração; alguma idéia de como consertar isso?

Este é meu arquivo App.Config:

<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>

Eu perdi alguma coisa?

Foi útil?

Solução

Não há nada em seu arquivo App.Config para dizer log4net para fazer as coisas de forma diferente no modo de depuração de lançamento ou. Se você deseja fazer logon para ser diferente entre as duas versões, você tem que mudar o seu arquivo de configuração entre as duas versões.

Sua melhor aposta é provavelmente para criar um App.Config para lançamento, um para depuração e, em seguida, siga o conselho na questão StackOverflow:

NOTA: A diferença entre o seu lançamento e depuração App.Config será a seguinte linha na versão de depuração

<level value="DEBUG" />

versus a seguinte linha na versão de lançamento (ou é claro que você poderia escolher ERROR ou FATAL se você quiser):

<level value="INFO" />

Outras dicas

Talvez tentar algo como isto em vez disso? Definir para qualquer nível mínimo que você deseja receber.

<level value="WARN" />

Se a sua aparência App.Config como este:

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

Você pode modificar o nível de log por código (coloque o código em Program.cs):


#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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top