Pergunta

Tudo que eu quero fazer é acrescentar a data atual e tempo para o meu arquivo de log, por exemplo:

"export_(Wed_Feb_21_2009_at_1_36_41PM)"

Aqui está a minha configuração atual do meu app.config

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="c:\export.txt" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
    </layout>
</appender>

É anexando a data para o meu arquivo de log possível, ou é uma daquelas coisas que eu preciso fazer no código e não de configuração?

Foi útil?

Solução

Adicione o seguinte ao seu arquivo de configuração

<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
  <param name="File" value="c:\\ProjectX\\Log\\log.txt"/>
  <param name="AppendToFile" value="true"/>
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
  <param name="RollingStyle" value="Date"/>
  <param name="DatePattern" value="yyyy.MM.dd"/>
  <param name="StaticLogFileName" value="true"/>
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
  </layout>
</appender>

Outras dicas

Para produzir um nome de arquivo como:

log_2013-12-19.txt

Faça alterações

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="log_"/>
    <param name="RollingStyle" value="Date"/>
    <param name="DatePattern" value="yyyy-MM-dd.\tx\t" />
    <param name="StaticLogFileName" value="false"/>
</appender>

Observe param "DatePattern" onde. \ Tx \ t faz com que o arquivo .txt extensão de nome. Se você fornecer .txt em vez de. \ Tx \ t, então este iria salvar nome de arquivo com extensão .PxP se o tempo é PM ou .AxA em caso de AM. então eu usei \ t para impor ao caráter de gravação em vez do padrão. O tempo também pode ser acrescentado e que nunca padrão de tempo necessário.

Então, isso pode ser realmente o que Philipp M queria.

Para aqueles que estão interessados, aqui está a solução:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="C:\\Users\\chris\\Documents\\log_.txt"/>
    <param name="RollingStyle" value="Date"/>
    <param name="DatePattern" value="_(yyyy.MM.dd-hh_mm_ss)"/>
    <param name="StaticLogFileName" value="false"/>
    <maximumFileSize value="100KB" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />           
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
    </layout>
</appender>

e o teste de unidade que verifica o seguinte:

[Test]
public void TestLogger()
{
    logger.Info("Start Log");

    for (int i = 0; i < 2500; i++)
    {
        logger.Info(i);
    }

    logger.Info("End Log Log");
}

Ela produz o seguinte resultado:

    log_.txt_(2009.02.19-01_16_34)

Não é realmente o que eu queria, mas melhor do que o que eu tinha antes.

Se você quiser usar um sufixo .log (para gerar um arquivo como myLogPrefix.20160309.log) use:

<appender name="GeofenceFileAppender" type="log4net.Appender.RollingFileAppender">
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <file type="log4net.Util.PatternString" value="C:\\Logs\\myLogPrefix" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value=".yyyyMMdd.lo'g'" />
        <staticLogFileName value ="false" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger – %message%newline" />
        </layout>
</appender>

As armadilhas são as staticLogFileName = false que permite gerar pacotes cumulativos na mosca (em vez de ter que reiniciar o serviço \ server) eo 'g' estranho na datepattern desde g é um personagem mágico no datePattern. Não há boa documentação no site log4net para estudar este, por isso é realmente sabedoria adquirida a partir de tentativa e erro e lavagem experiências de outras pessoas.

Use StaticLogFileName :

<param name="StaticLogFileName" value="true"/>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top