Pregunta

De acuerdo con Documentación Log4Net , la RollingFileAppender solo rodará el archivo de registro cuando se registre un mensaje. Necesito iniciar sesión en este archivo, pero importarlo todos los días a otra base de datos. No puedo usar un agregado de base de datos porque necesito los archivos y tengo que traducir los datos del archivo de registro a la base de datos (no es una copia directa). El problema es que si no hay actividad de registro después de la medianoche, el registro no rueda. El importador busca el archivo de los días anteriores (y no puedo cambiar este código), por lo que si no hay actividad y el registro no se ha enrollado, el importador no encuentra el archivo. ¿Hay alguna forma de obligar al registro a rodar a medianoche sin tener otro hilo que se despierte y lo obligue a rodar? ¿Podría un apéndice personalizado hacer esto? Me gustaría evitar esto si es posible.

¿Fue útil?

Solución

Escriba un servicio de Windows que active un evento justo después de la medianoche que escriba una entrada de registro ficticia utilizando la misma configuración.

Otros consejos

Tiene que pensar en esto desde el punto de la pregunta "¿qué rutas de código conducen a la rutina de rollover?". Una vez que sepa cómo se alcanza esa rutina, puede decidir cómo activarla.

¿Podría un complemento personalizado hacerlo? Claro, pero no se ejecutará ningún código en el apéndice hasta que inicie sesión a través de él, de modo que vuelva al punto de partida.

En cuanto a la pregunta "¿Hay alguna forma de obligar al rollo a rodar a medianoche sin tener otro hilo que se despierte y lo obligue a rodar?", diría que esa pregunta es equivalente a "¿Es posible?" para forzar el registro a rodar a la medianoche sin ejecutar ningún código? " ;. No estoy tratando de ser gracioso al respecto, o de insultarte, solo estoy tratando de reformular la pregunta de una manera que con suerte la responda por ti. :-)

La forma más fácil de resolver esto es hacer que algo se despierte y registre para forzar la rotación del archivo.

De acuerdo con la documentación RollingFileAppender puede configurarlo para rodar diariamente, vea esta configuración:

<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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top