Utilisation de NLog comme enregistreur de fichier de survol
Comment - si possible - puis-je utiliser NLog comme un fichier de substitution enregistreur? comme si:
Je veux avoir plus de 31 fichiers pour 31 jours, et lorsqu'une nouvelle journée a commencé, si il y a un vieux journée fichier de log ##.journal, alors il devrait être supprimé, mais au cours de cette journée, tous les journaux sont ajoutés à la fin et sera là au moins 27 jours.
source d'informationauteur Kaveh Shahbazian
Vous devez vous connecter pour publier un commentaire.
Finalement, j'ai réglé avec à partir de la taille de fichier d'archives. J'utilise une astuce pour le nom du fichier après le jour du mois et que j'avais besoin de partir de la taille du fichier d'archives, car il aide vraiment quand vous les journaux commencent à se développer au-delà de quelques centaines de méga-octets. Il aide à faire - par exemple - 20 MO morceaux de journal, donc, on peut facilement prendre un coup d'oeil à elle avec un poids léger de l'outil comme Notepad++.
Il travaille depuis presque un an maintenant. Voici une version simplifiée de mon
NLog.config
fichier:Cette config fait 1 MO fichier journal pour chaque jour du mois et de garder tout au plus 10 archivé journal de 1 MO morceaux dans
My Documents\MyApp\Log
dossier; comme29.log
30.log
et31.log
.Edit: C'est pour un certain temps que j'utilise ce
NLog.config
fichier et il couvre presque tous les cas que j'ai besoin. - Je avoir différents niveaux de journalisation de différentes classes dans des fichiers séparés et quand il y a de grands, ils seront archivés en fonction de la taille, dans un horaire manière:Et dans chaque classe que je veux une fonctionnalité de journalisation, j'ai mis ceci:
Deux autres bûcherons sont pour empiler des données sur une base quotidienne et de l'écriture de Journal des Événements de Windows, qui ne sont d'application à l'échelle de bûcherons:
Et ils devraient être initialiser à l'application de début:
Remarque: Parfois, sur vous app à la sortie, vous obtenez une exception produite par NLog. C'est parce que quelque chose qui n'est pas initialisé, ne peut pas obtenir éliminés! Vous avez juste à écrire une entrée vide dans votre enregistreur à l'application de commencer, dire:
J'ai ajouté cette limitation de taille de sorte fichier journal peut être consulté dans le (dire) le bloc-notes sur un serveurs bas de gamme, pour rapide commentaires. Vous devriez les modifier en fonction de vos besoins.
Je voudrais vous suggérer de séparer le problème en deux aspects différents:
Dans mon expérience, il serait utile de garder la date dans le nom du fichier journal, par exemple,
Cette partie devrait être facile avec NLog, compte tenu de la exemples dans les docs.
Maintenant la deuxième partie peut être facilement fait dans un deuxième thread ou peut-être même un processus complètement différent, il a juste besoin de voir comment de nombreux fichiers sont présents et supprimer les plus anciennes, si nécessaire. Trouver le plus "ancien" devrait être facile si la date est dans le nom de fichier, même si vous ne voulez pas confiance aux informations du système de fichiers.
En fait, en regardant les NLog de la documentation, il semble que la "en fonction du temps fichier d'archives" cible peuvent faire exactement ce que vous voulez... mais même si ce n'est pas normal "d'un fichier de log par jour" approche et rouler votre propre nettoyage devrait être facile.