Pergunta

De acordo com a documentação Log4Net , o RollingFileAppender só vai rolar o arquivo de log quando uma mensagem é registrada. I precisa fazer login para este arquivo, mas importá-lo todos os dias em outro banco de dados. Eu não posso usar um appender banco de dados, porque eu preciso os arquivos e eu tenho que traduzir os dados do arquivo de log para o banco de dados (não é uma cópia direta). O problema é se não há atividade de log após a meia-noite, o log não rola. Os olhares importador para o arquivo de dias anteriores (e eu não posso mudar este código), por isso, se não houver nenhuma atividade e o registo não tem rolado, o importador não encontrar o arquivo. Existe uma maneira de forçar o log de rolo à meia-noite sem ter outro segmento que acorda e obriga a rolar? Poderia um appender costume fazer isso? Eu gostaria de evitar isso, se possível.

Foi útil?

Solução

Escrever um serviço do Windows que dispara um evento logo após a meia-noite que escreve uma entrada de registro fictício usando a mesma configuração.

Outras dicas

Você tem que pensar sobre isso do ponto da pergunta "o código de caminhos levam à rotina rollover?". Depois de saber como essa rotina é atingido você pode decidir como para provocá-lo.

Poderia um appender costume fazê-lo? Claro, mas nenhum código no appender será executado até que você log via-lo assim que você está de volta para um quadrado.

Quanto à questão "Existe uma maneira de forçar o log de rolo à meia-noite sem ter outro segmento que acorda e força-o a rolo?", Eu diria que esta questão é equivalente a "É possível forçar o log de rolo à meia-noite sem qualquer código que está sendo executado?". Eu não estou tentando ser engraçado sobre isso, ou para insultá-lo, eu só estou tentando reafirmar a questão de uma forma que esperamos responder isso para você. : -)

A maneira mais fácil de resolver isso é ter algo acordar e log para forçar o arquivo a rotação.

De acordo com a documentação RollingFileAppender você pode configurá-lo de rolo em uma base diária, consulte esta configuração:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top