Un fichier de log par courir avec log4j
Comment configurez-vous log4j.propriétés à avoir exactement un fichier de log par exécution d'une application.
J'ai lu que vous devriez utiliser un timestamp dans le nom de fichier, mais qui permettra de créer de nombreux fichiers par exécution comme le temps passe.
J'ai essayé DailyRollingFileAppender et RollingFileAppender, mais ne peut pas trouver un moyen de configurer exctly un journal par run. Le journal ne doit pas être rompu dans plusieurs journaux et il ne devrait pas être tronqués et les fichiers des anciennes pistes doivent être préservés.
Chaque classe a un static org.slf4j.Enregistreur de son propre nom de classe:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
C'est mon log4j.propriétés
log4j.rootLogger=error, RootAppender, RootErrorAppender
#log4j.logger.com.example=info, qspaBackendAppender, stderr
log4j.logger.com.example=info, qspaBackendAppender
log4j.additivity.com.example=true
#log4j.logger.com.example.util=trace, qspaBackendAppender, stderr
#log4j.additivity.com.example.util=true
log4j.appender.qspaBackendAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.qspaBackendAppender.file=logs/qspaBackend.log
log4j.appender.qspaBackendAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.qspaBackendAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.Target=System.err
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=%-5p %c{1}:%L - %m%n
log4j.appender.RootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootAppender.file=logs/root.log
log4j.appender.RootAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootErrorAppender.file=logs/rootError.log
log4j.appender.RootErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootErrorAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender.threshold=error
OriginalL'auteur lilalinux | 2013-10-02
Vous devez vous connecter pour publier un commentaire.
Combiner la réponse de Udo Klimaschewski et la réponse de ce question afin d'obtenir le résultat souhaité.
"La réponse de Udo Klimaschewski' -> vous êtes juste un lien vers le profil de l'utilisateur. Nous ne savons pas à quoi vous faites allusion.
OriginalL'auteur Udy
J'ai eu des ennuis de récupération qui Udo Klimaschewski la réponse de Udy se réfère donc je mets ici ma solution.
log4j.propriétés:
Puis mettez-les dans la classe principale de ce bloc:
A volé !!! Si vous suivez le lien précédent, vous ne voyez aucune réponse de Klimaschewsky ! Qu'ont fait Tobia Zambon est parfaitement correcte. Il a même l'honnêteté d'en référence à son auteur. Bravo !
Le code de définir le Système de la Propriété peut être mis au début de la fonction main() qui a été définie comme statique.
Une propriété n'est pas égale à la variable d'environnement DOS. Pour utiliser le nom d'utilisateur dans le Journal d'un fichier, vous devez le définir en statique {} bloc ou de la fonction principale. Il serait intéressant que Tobia Zambon ajouter un nom d'utilisateur dans le fichier de nom 🙂 Sur Windows 7, le code à ajouter est le Système de la.setProperty("nom d'utilisateur", Système.la fonction getenv("USERNAME"));`
@tobia-zambon -_-
OriginalL'auteur Tobia Zambon
Pour démarrer un nouveau fichier journal sur l'app démarrage, vous souhaitez peut-être utiliser OnStartupTriggeringPolicy
Le Déclenchement Des Politiques
Exemple de configuration XML:
Fonctionne bien pour moi
OriginalL'auteur Vadim Zin4uk