Log4j vs Logback: écriture simultanée dans le même journal?
J'ai plusieurs applications web fonctionnant sur le même serveur tomcat.
J'ai deux questions:
1 - Par la recherche, j'ai compris que lorsque plusieurs applications sont présents, l'exploitation forestière dans le même fichier peut rendre certains problèmes. Est-ce le cas pour de multiples applications en cours d'exécution sur le même serveur web? Est aussi correct lorsque l'option par défaut stdout est-il utilisé?
2 - Dans Logback de la bibliothèque, il est prudent de mode:
Prudente mode, FileAppender en toute sécurité à écrire dans le fichier spécifié, même en présence d'autres FileAppender instances en cours d'exécution dans différentes machines virtuelles java, potentiellement en cours d'exécution sur des hôtes différents. La valeur par défaut pour la prudente mode est faux.
Je veux savoir si en utilisant Logback est seulement favorable sur plusieurs machines virtuelles ou il est également avantageux pour plusieurs nous applications fonctionnant sur le même serveur web? Si non, est-il identique à log4j dans cet aspect?
Grâce
source d'informationauteur Shayan
Vous devez vous connecter pour publier un commentaire.
Dans les deux log4j et logback si plusieurs
FileAppender
instances écrire dans le même fichier journal, il y a un haute risque pour le fichier journal de devenir corrompu. Si leFileAppender
instances s'exécutent sur la même JVM ou différentes machines virtuelles java n'est pas pertinent, c'est à dire le risque de corruption est le même.Comme indiqué dans les docs, dans prudent mode logback de
FileAppender
permettra d'éviter la corruption, même en présence d'autresFileAppender
instances en cours d'exécution dans la même ou de différentes machines virtuelles java, potentiellement en cours d'exécution sur des hôtes différents. Par défaut, prudent mode est désactivé.La console ne peut pas être endommagé si la question est discutable.
Il y a une chose qui doit être précisé: Il y aura des problèmes quand différentes instances de Log4j sont écrire dans le même fichier simultanément, de savoir si l'exécution dans la même JVM ou pas.
Lors de l'utilisation de serveurs (et les différents chargeurs de classes), il est possible d'avoir un serveur unique à l'échelle de l'instance ou de plusieurs instances de Log4j, selon la configuration et le déploiement.
À l'aide de Filelocks est jamais réellement efficace et sécuritaire, de sorte que lors de la connexion vers le même fichier à partir de différents appenders/JVM œuvres, il n'est pas recommandé. Voir la configuration que j'ai pris directement à partir de logback-appenders-faq.
Vos autres options pour plusieurs machines virtuelles écrit à certains unifiée de la source de SocketAppenders et la JDBCAppender.
Le JDBCAppender sera complètement remplacé dans le futur si et est pas recommandée. Voir logbacks mailinglist.
SocketAppenders peut-être un peu cru, comme vous l'avez probablement n'étaient pas de rabotage sur l'écriture de code pour logback.
Il y a une option de plus. Vous pouvez utiliser quelque chose comme clusterlogqui a été construire pour résoudre exactement le genre de problème que vous avez.