9
votes

Écrire des journaux d'audit à l'aide de log4j

J'ai une application qui doit écrire des journaux de deux types différents: journal d'application et journal d'audit. Le journal des applications est utilisé à la recherche de débogage, tandis que le journal d'audit est d'enregistrer les opérations effectuées. Les deux journaux seront dans différents fichiers et chaque fichier doit avoir uniquement les journaux comme mentionné (signifie que le fichier journal d'audit ne peut pas avoir de journal d'application et inversement).

Comment cela peut être mis en œuvre à l'aide de log4J?
Je sais qu'un moyen de mettre en œuvre c'est en définissant le niveau de journal personnalisé dans log4j. Y a-t-il un autre moyen / meilleur moyen de faire?


2 commentaires

Vous pouvez utiliser un enregistreur différent avec son propre appendeur qui écrit dans un fichier différent. Il y a beaucoup de façons de faire cela. Cependant, Log4J est le moyen le plus performant d'écrire des journaux (cela fonctionne mieux lorsque les journaux sont conservés au minimum) et ne sont pas conçus pour être facilement lus par les applications afin que je envisageais d'écrire des journaux d'audit dans un format de votre choix.


Log4J fournit de nombreuses fonctionnalités dont j'ai besoin. Par conséquent, je cherche un moyen de faire cela en utilisant log4j seulement.


5 Réponses :


3
votes

Je ne pense pas que vous ayez besoin d'un nouveau niveau. Au contraire, vous avez besoin d'un enregistreur (ou Ensemble de enregistreurs ).

Normalement, vous les instanciez avec le nom de la classe / du package. Toutefois, pour des fins d'audit, vous pouvez simplement instancier un nouvel enregistreur avec le nom "Audit" (ou similaire), puis configurez de manière appropriée en utilisant les mécanismes standard.


1 commentaires

Comment la création d'un autre LOGGER Aide Aide? J'ai déjà vérifié cela. Pouvez-vous me fournir les détails sur cette configuration? Parce que je ne suis pas au courant de ce type de configuration.



0
votes

Un niveau de journal personnalisé est une option mais je ne suis pas sûr de l'avoir besoin.

Vous pouvez définir 2 annexes: une pour la journalisation et l'autre pour l'audit qui écrit au fichier d'audit. Ensuite, vous pouvez créer un enregistreur connecté avec l'appendeur d'audit et l'utiliser pour signaler les opérations d'audit tout en conservant tous les autres rapports à l'aide des enregistreurs ordinaires que vous utilisez normalement.


0 commentaires

0
votes

Un appendeur dans Log4J prend en charge les filtres. Pour séparer les messages dans les 2 fichiers, vous pouvez utiliser un niveau de tailleMatchfilter http://logging.apache.org/log4j /1.2/apidocs/org/apache/log4j/varia/levelmatchfilter.html

Si fondamentalement, vous définissez 2 appendeurs pour les 2 fichiers différents, chacun avec les filtres appropriés.


0 commentaires

4
votes

J'ai eu le même cas d'utilisation. Dans votre log4j.xml, vous pouvez définir deux enregistreurs différents et un appendend pour chacun. Par conséquent, un exemple: xxx

dans votre code Java, vous pouvez créer un enregistreur avec "logger.getlogger (" logger_1 ")" qui écrira les sorties de journal dans le fichier défini.


2 commentaires

Pouvez-vous s'il vous plaît dites-moi la configuration requise pour le fichier de propriétés?


Désolé, mais je n'ai jamais travaillé avec un fichier de propriétés. J'utilise toujours le fichier log4j.xml



2
votes

log4j 2.0 a été créé avec prise en charge de la journalisation d'audit comme l'un des objectifs principaux. Un modèle d'utilisation recommandé consiste à utiliser EventLogger Log4J (ou SLF4J), puis à utiliser le flumeAppender, qui peut fournir une livraison garantie à votre référentiel journal cible. Voir http://logging.apache.org/log4j/2.x/ Manuel / eventLogging.html et http: // enregistrement .apache.org / log4j / 2.x / manuel / Appendeurs.html # FlumerAppender Pour plus d'informations. Si vous avez d'autres questions, n'hésitez pas à demander aux listes de diffusion Apache Log4J.


0 commentaires