2017-07-07 3 views
0

J'ai une application maven avec log4j.properties avec le paramètre pour écrire les journaux dans un fichier spécifié au lieu de la console. Lorsque je lance le fichier EAR sur l'un des serveurs websphere, il crée le fichier comme prévu et écrit des journaux. Mais, lorsque j'exécute le même fichier EAR sur un autre serveur webspehere, il écrit sur console au lieu d'écrire les journaux dans le fichier spécifié. J'ai vérifié les autorisations et tout semble aller bien. Aidez-moi à identifier le problème. Merci d'avance.Log4j n'écrit pas les journaux dans un fichier sur un serveur Websphere et écrit dans un fichier sur un autre

# CONSOLE APPENDER (stdout) 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Threshold=DEBUG 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=[%d] [%t] %-5p %20c - %m%n 

# ROLLING FILE APPENDER (on the file system) for memberpolicyattributesservice code 
log4j.appender.xxxxService=org.apache.log4j.RollingFileAppender 
log4j.appender.xxxxService.Threshold=DEBUG 
log4j.appender.xxxxService.File=/var/logs/xxxServer1/xxxServiceLog.log 
log4j.appender.xxxxService.layout=org.apache.log4j.PatternLayout 
log4j.appender.xxxxService.layout.ConversionPattern=%d{[email protected]:mm:ss} %-5p (%13F:%L) %3x - %m%n 
log4j.appender.xxxxService.MaxFileSize=10000KB 
log4j.appender.xxxxService.MaxBackupIndex=30 
log4j.appender.xxxxService.layout=org.apache.log4j.PatternLayout 
log4j.appender.xxxxService.layout.ConversionPattern=[%d] [%t] %-5p %20c - %m%n 



# ROLLING FILE APPENDER (on the file system) for hiberate, open source code log files 
log4j.appender.open_source_code=org.apache.log4j.RollingFileAppender 
log4j.appender.open_source_code.layout=org.apache.log4j.PatternLayout 
log4j.appender.open_source_code.Threshold=DEBUG 
#message format:YYYY-MM-DD HH:mm:ss,ms [ThreadId] <PRIORITY> classname.message 
log4j.appender.open_source_code.layout.ConversionPattern=%d [%t]<%-5p> %c.%m \r\n 
#file that will be logged to 
log4j.appender.open_source_code.File=/var/logs/xxxServer1/open_source_code.log 
log4j.appender.open_source_code.Append=true 
log4j.appender.open_source_code.MaxFileSize=1024KB 
log4j.appender.open_source_code.MaxBackupIndex=5 


#turn on log4j verbose mode 
log4j.debug = true 

# Set root logger level to INFO and its appender to DSInstrumentor,stdout. 
log4j.rootLogger=DEBUG,stdout,xxxxService 


# YOUR CATEGORIES (to customize logging per class/pkg/project/etc) 
log4j.category.fatal=FATAL,xxxxService 
log4j.category.error=ERROR,xxxxService 


#This will also enable the logging for all the children (packages and classes) of this package 

log4j.logger.com.xxxxx=ALL,xxxxService 

# Print only messages of level INFO in the open source code 
log4j.logger.org=INFO,open_source_code 

Répondre

0

Vous avez plusieurs enregistreurs définis dans votre enregistreur racine (DEBUG, stdout, xxxxService), mais les enregistreurs xxxxService ressemblent, ils sont liés au système de fichiers sur l'un des systèmes:

log4j.appender .open_source_code.File =/var/logs/xxxServer1 /open_source_code.log

Assurez-vous que le chemin d'accès est valide pour chaque serveur de votre cluster WAS. En guise de remarque, vous devriez probablement éviter d'utiliser debug et stdout sur un serveur distant. C'est bien pour le développement local sur votre poste de travail, mais pas sur une boîte distante. Au lieu de cela, fournissez des propriétés log4j différentes sur vos différents niveaux de déploiement. Cela vous permet de personnaliser l'emplacement du journal ou l'appender (par exemple c: \ temp ou CONSOLE sur votre bureau, mais/var/logs ... sur toutes les machines distantes) ainsi que vos niveaux de journalisation (DEBUG pour desktop, INFO pour QA ou Staging, et WARN ou ERROR pour la production).

+0

Merci pour la réponse. J'ai même essayé d'enlever les enregistreurs multiples dans mon enregistreur de racine et ai constaté que cela n'a pas fonctionné sur le serveur. Merci pour la suggestion au niveau du journal, mais j'essaye de déployer l'application pour la première fois sur ce serveur et ai donc eu le niveau de notation comme "débogage" au lieu de "info". –

+0

Le chemin d'accès est le même sur les deux serveurs, mais la consignation est toujours en cours d'écriture sur la console sur l'un des serveurs, alors qu'elle fonctionne correctement sur les autres. Je ne comprends toujours pas si une configuration au niveau du serveur doit être modifiée. S'il vous plaît laissez-moi savoir si vous en connaissez. –