2009-09-11 7 views
0

J'utilise la boîte à outils Google pour le logiciel GTMLogger de Mac pour ouvrir une session dans l'application sur laquelle je travaille. J'essaie de décider comment faire un survol du fichier journal lorsque le fichier devient assez grand. Idéalement, je voudrais quelque chose comme le rollover immédiat de log4net lorsque le fichier journal atteint 1 Mo avec 11 fichiers journaux maximum à un moment donné, mais je ne vois pas de façon intégrée de le faire et je me demande si essayer d'ajouter c'est plus de problèmes que ça en vaut la peine.Renvoi du fichier journal lors de la connexion au fichier à l'aide de la boîte à outils Google pour Mac

L'option un peu plus simple que je peux penser est juste de faire cette vérification sur le démarrage de l'application et de rouler sur le journal il est sur une certaine taille. L'inconvénient est bien sûr que si quelqu'un laisse l'application en marche pendant une semaine ou deux (et comme une partie de l'application est un démon launchd c'est une possibilité certaine pour ceux qui redémarrent rarement), il pourrait y avoir un fichier journal de non taille -trivial construite pendant cette période (en fonction du niveau de journalisation activé).

Qu'est-ce qui va être ma meilleure option ici?

Répondre

1

Vous vous inquiétez que la vérification au démarrage ne soit pas souvent suffisante. Donc, lancez une minuterie dans votre runloop au démarrage pour déclencher une vérification du journal immédiatement et une fois par jour ou deux par la suite. Si vous prévoyez d'utiliser au plus 1 MiB à la fois, même si vous dépassez la limite pendant un certain temps, cela n'aura probablement pas beaucoup d'importance.

Vous pouvez également voir comment log4net implémente cette fonctionnalité: il suffit de saisir Append() pour vérifier que les contraintes de taille/date sont respectées et d'ajuster le fichier enregistré si nécessaire. Voir le RollingFileAppender source code pour plus de détails; commencez par AdjustFileBeforeAppend() puis consultez RollOverSize(). C'est Apache: Utilise la source!

+0

Nous avons fini par étendre la journalisation de GTM pour prendre en charge cette fonctionnalité. –