2014-10-10 3 views
1

내 Java Desktop 응용 프로그램에 대한 내 프로젝트의 일부로 Log4J 로깅을 구현했으며 정상적으로 작동합니다.프로젝트 간 Log4j 공유

이제 다른 프로젝트가 있고 두 프로젝트가 동일한 로그 파일을 공유하려고합니다. 이 두 프로젝트는 내 응용 프로그램에 함께 제공되므로 로그 파일을 공유하는 것이 좋습니다. 이것이 어떻게 가능한지 ?

LoggerClass :

package com.application.logging; 

import org.apache.log4j.Logger; 

public class LoggingSample { 
    private static Logger logger = Logger.getLogger("Visualx"); 

    public static Logger getLogger() { 

     return logger; 
    } 

    public static void setLogger(Logger logger) { 
     LoggingSample.logger = logger; 
    } 
} 

Log4j.properties 파일 : 가능 기술 된 경우에도

# Log levels 
log4j.rootLogger=INFO,CONSOLE,R 
# Appender Configuration 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
# Pattern to output the caller's file name and line number 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 
# Rolling File Appender 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
# Path and file name to store the log file 
log4j.appender.R.File=${user.home}/log/testlog.log 
log4j.appender.R.MaxFileSize=200KB 
# Number of backup files 
log4j.appender.R.MaxBackupIndex=2 
# Layout for Rolling File Appender 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n 

답변

1

(나는 그것을 의심하기 때문에 두 개의 프로세스를

현재이 내가 무엇을 가지고 동시에 하나의 파일을 열어야 함) 일반적으로 모범 사례로 간주되지 않습니다.

별도의 파일에 기록하고 실제 로그 문이 올바른지 확인하십시오. 모든 로그 파일을 통해 이벤트를 추적 할 수있는 참조를 사용하십시오.

당신이 정말로 함께/번들 가지를 병합해야하는 경우 나 OS 수준에서 그것을 구현하는 것을 권 해드립니다은 (cron 작업은 ...) 내가이

+0

이점 중 하나는 적어도 내 응용 프로그램이 단일 스레드 것입니다. 그래서 그런 해결책이 존재한다면 문제를 동기화하는 것에 신경을 쓰지 않아도됩니다. – rockstar

관련 문제