Question

Selon la documentation Log4Net , le RollingFileAppender ne roulera le fichier journal que lorsqu'un message est enregistré. Je dois me connecter à ce fichier, mais l'importer tous les jours dans une autre base de données. Je ne peux pas utiliser un appender de base de données car j'ai besoin des fichiers et je dois traduire les données du fichier journal dans la base de données (ce n'est pas une copie directe). Le problème est que s'il n'y a pas d'activité de journal après minuit, le journal ne roule pas. L'importateur recherche le fichier des jours précédents (et je ne peux pas modifier ce code). Par conséquent, s'il n'y a aucune activité et que le journal n'est pas lancé, l'importateur ne trouve pas le fichier. Est-il possible de forcer la bûche à rouler à minuit sans avoir un autre fil qui se réveille et la force à rouler? Un appender personnalisé pourrait-il le faire? Je voudrais éviter cela si possible.

Était-ce utile?

La solution

Écrivez un service Windows qui déclenche un événement juste après minuit et écrit une entrée de journal factice en utilisant la même configuration.

Autres conseils

Vous devez réfléchir à cela à partir de la question "Quels chemins de code mènent à la routine de substitution?". Une fois que vous savez comment cette routine est atteinte, vous pouvez décider de la déclencher.

Un appender personnalisé peut-il le faire? Bien sûr, mais aucun code dans l'appender ne fonctionnera jusqu'à ce que vous vous connectiez via celui-ci, vous revenez à la case départ.

En ce qui concerne la question "Peut-on forcer le journal à rouler à minuit sans avoir un autre thread qui le réveille et le force à rouler?", je dirais que cette question est équivalente à "Est-il possible forcer le journal à se dérouler à minuit sans qu'aucun code ne soit exécuté? ". Je n'essaie pas d'être drôle ou de vous insulter, j'essaie simplement de reformuler la question de manière à pouvoir y répondre, espérons-le. : -)

Le moyen le plus simple de résoudre ce problème consiste à activer et désactiver un journal pour forcer la rotation du fichier.

Selon la documentation RollingFileAppender , vous pouvez le définir. pour rouler quotidiennement, voir cette configuration:

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top