Problem z logowanie na glassfishu

0

Mam następujący problem. Mam aplikację na glassfishu i korzystam z log4j. Prawie wszystko działa dobrze, ale niestety przy każdym uruchomieniu restowego webservice'a do pliku server.log trafiają zduplikowane wpisy wygenerowane przez log4j. Przy n-tym uruchomieniu mam n-1 wpisów w server.log. Trochę to denerwujące. Ma ktoś jakiś pomysł jak wyłączyć całkowicie logowanie do server.log wpisów czynionych przez log4j albo przynajmniej jak zabezpieczyć się przed tymi duplikatami?

Kod w RestWS

private Logger logger = Logger.getLogger(getClass().getName());

public final String getHierarchy(@QueryParam("objectId") final String objectId)
  BasicConfigurator.configure();
  logger.info("Start restWS.");

log4j.properties

log4j.rootLogger=,console, debugFile, logFile

# Configuration for console log
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{HH:mm:ss}] %-5.5p: %m%n
log4j.appender.console.Threshold=DEBUG

# Configuration for debug logfile
log4j.appender.debugFile=org.apache.log4j.RollingFileAppender
log4j.appender.debugFile.File=${com.sun.aas.instanceRoot}/logs/hdcDebug.log
log4j.appender.debugFile.MaxFileSize=100KB
log4j.appender.debugFile.MaxBackupIndex=1
log4j.appender.debugFile.layout=org.apache.log4j.PatternLayout
# %x outputs the nested diagnostic context (NDC) associated with the thread that generated the logging event. Useful when multiple clients
# are handled by separate threads such as in Java servlets.  
log4j.appender.debugFile.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss}] | %-5.5p | %t:%-16.16x | %F:%-16.16L | %m%n
log4j.appender.debugFile.Threshold=DEBUG

# Configuration for customer logfile
log4j.appender.logFile=org.apache.log4j.RollingFileAppender
log4j.appender.logFile.File=${com.sun.aas.instanceRoot}/logs/hdc.log
log4j.appender.logFile.MaxFileSize=100KB
log4j.appender.logFile.MaxBackupIndex=1
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%d{HH:mm:ss}] | %-5.5p | %m%n
log4j.appender.logFile.Threshold=INFO
0

Może się komuś przyda ta informacja, że w przypadku glassfisha nie należy używać BasicConfigurator tylko PropertyConfigurator. Poniżej fragment kodu i plik log4j.properties (poprawiony troszeczkę).

PropertyConfigurator.configure("log4j.properties");
logger.info("Start restWS.");
 

log4j.properties

llog4j.rootLogger=DEBUG, debugFile, logFile

# Configuration for debug logfile
log4j.appender.debugFile=org.apache.log4j.RollingFileAppender
log4j.appender.debugFile.File=${com.sun.aas.instanceRoot}/logs/hdcDebug.log
log4j.appender.debugFile.MaxFileSize=100KB
log4j.appender.debugFile.MaxBackupIndex=1
log4j.appender.debugFile.layout=org.apache.log4j.PatternLayout
# %x outputs the nested diagnostic context (NDC) associated with the thread that generated the logging event. Useful when multiple clients
# are handled by separate threads such as in Java servlets.  
log4j.appender.debugFile.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss}] | %-5.5p | %t:%-16.16x | %F:%-16.16L | %m%n
log4j.appender.debugFile.Threshold=DEBUG

# Configuration for customer logfile
log4j.appender.logFile=org.apache.log4j.RollingFileAppender
log4j.appender.logFile.File=${com.sun.aas.instanceRoot}/logs/hdc.log
log4j.appender.logFile.MaxFileSize=100KB
log4j.appender.logFile.MaxBackupIndex=1
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%d{HH:mm:ss}] | %-5.5p | %m%n
log4j.appender.logFile.Threshold=INFO

1 użytkowników online, w tym zalogowanych: 0, gości: 1