Je me développe actuellement bientôt pour être un service Web de repos (bon fonctionnement) et je souhaite capturer des journaux vraiment bonnes, afin que je puisse avoir une bonne idée de ce qui se passe où se passe. Pour l'instant, j'utilise log4j pour la journalisation, à l'aide de ce paramètre ajouté: qui produit ce type de journal: p> 10:44:55,893 INFO [STDOUT]
5 Réponses :
question 1: strong> Utilisez la mise en page de modèle suivante pour votre appendend: p> Le modèle de conversion dans le fichier de configuration que vous avez indiqué. n'entraîne pas le genre de journal que vous avez indiqué. Par exemple, la date / heure n'est pas incluse dans votre motif de conversion. P> question 2: strong> p> Vous pouvez utiliser un enregistreur spécial qui utilise un autre appendendais qui ne connecte que le message pur. p> Votre configuration ressemble par exemple aux éléments suivants: p> Vous utilisez le SPOSELLOGGER pour les messages purs sans les informations supplémentaires. Il peut être utilisé dans plusieurs classes. P> dans la configuration du spéciallogger, Votre code pourrait par exemple ressembler à ceci: p> appelant DOSOMNATURED Résultats: < / p> quelque part dans votre classe principale, vous devez configurer log4j comme d'habitude, par exemple: p>
additive = "false" code> est nécessaire, car sinon également l'appendeur
consoleAppender2 code> de l'enregistreur racine enregistre le même message. (Le message serait connecté deux fois dans ce cas.) P>
Même lorsque j'utilise tout ce que vous avez suggéré, je ne peux toujours pas me débarrasser de ce gênant "13: 13: 43,428 info [stdout]" devant tout ce que je change dans mon appendeur, vos paramètres fonctionnent, mais seulement après cette partie ..
Essayez d'utiliser ce modèle car il vous donnera un message propre:
<param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p %c %X %m/>
Le La solution dans notre cas a été de supprimer la configuration log4j spécifique de l'application et utilisez simplement celle que JBoss écrit à. P> Une autre manière peut être d'écrire directement à un fichier journal spécifique à une application plutôt que d'écrire sur la console. Dans un environnement de serveur, vous vous référez probablement aux fichiers journaux de toute façon. P> comme pour la deuxième partie, c'est-à-dire d'étendre automatiquement des journaux avec réponse, demande, etc. Données: P> dans un cas Nous avons eu une super catégorie pour des haricots de session apatrides qui ont fourni une fonctionnalité de journalisation et avaient un enregistreur (écrasé) par exemple. Les méthodes de base telles que Une seconde approche pourrait être Par exemple, nous avons plusieurs applications similaires chacune ayant des classes les autres aussi. Nous aurions donc besoin de quelle application est originaire du message et a donc ajouté le nom de l'application au MDC: p> dans le code: dans le modèle log4J config: Je n'ai pas testé si vous pouviez faire quelque chose comme mettre la demande dans le MDC, puis utiliser: appelez info [stdout] code> est normalement issu de log4j à écouter pour system.out également. Nous avons eu un cas similaire où l'application elle-même avait sa propre configuration log4j et a ainsi obtenu son propre appendeur root. Cela se connecterait à la console qui est écoutée par le JBoss Log4J. Cela ajoute-t-il l'info
info [stdout] code> comme si vous écrivez directement sur
System.out code> (ou
Erreur [STDERR] CODE> Quand écrire sur < code> system.err code>).
info code> appelleraient ensuite l'enregistreur et ajouteront automatiquement les données requises. P>
mcd code>, c'est-à-dire que vous mettez certaines données (comme la requête) dans le fil de discussion MDC local (essentiellement une carte), puis les accéder à votre définition de votre modèle. P>
MDC.UT ("APP.NAME", "MYAPPLICATION"); CODE> P>
code> (notez le % x {APP.NAME} B>) P>
% x {request.getattribute ('xyz ')} code> mais s'il obtient simplement la valeur dans le MDC et les appels
Tostring () code> dessus, vous pouvez créer une enveloppe de demande comme ceci: p>
MDC.put ("Demande", nouvelle demandeLogwrapper (Demande)); code> et dans l'utilisation de configuration
% x {requête} code>. p> p>
Pour imprimer uniquement les messages, le modèle de conversion suivant le fera.
<param name="ConversionPattern" value="%m%n"/>
Si vous n'aimez pas le fichier de configuration de Log4J XML, vous pouvez passer à un fichier de propriétés à la place. Vous ne pouvez pas configurer les filtres à l'aide du fichier de propriétés simple, mais comme il semble que vous n'ayez pas besoin d'eux, cela ne devrait pas être un problème. P>
étant donné que vous êtes p>
... en train de se développer prochainement pour devenir un service Web de repos (sage fonctionnel) et je veux capturer des bûches vraiment bonnes, afin que je puisse avoir une bonne idée de ce qui se passe où. P> blockQuote>
J'ai bien peur que votre sortie souhaitée ne vous donne pas beaucoup de perspectives, elle ne fera pas bien échouer, et cela vous fera perdre votre esprit une fois que l'application devient grande ... P >
Veuillez vous reporter à log4J meilleures pratiques pour une bonne référence de la conception des journaux. Veuillez consulter Tous les paragraphes forts>, y compris la considération cosmétique à la fin. J'espère que cela aide. P>
Non JBoss MAIS% D {Absolute} vous a donné 10: 44: 55 893 Message
Pourriez-vous clarifier - Qu'est-ce qui est laid de définir un modèle de conversion personnalisé?