Search

'log4j'에 해당되는 글 2건

  1. 2016.08.22 Log4cxx ChainSaw Appender
  2. 2016.08.22 log4cxx MFC Client 와 log4j Java Server 연결

Log4cxx ChainSaw Appender

Programming/C,CPP,CS 2016. 8. 22. 11:01 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Log4cxx ChainSaw Appender






Log4cxx 에 발생하는 Log 를 ChainSaw 서버로 보내면 쉽게 Log를 관리 할 수 있다.


https://logging.apache.org/chainsaw/





Apache Chainsaw configured for two XML socket receivers






Windows 의 경우 


Unix/Dos Standalone 버전을 받아서



chainsaw.bat 파일을 실행시키면



ChainSaw 화면이 뜬다.









336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

log4cxx MFC Client 와 log4j Java Server 연결



MFC Client 는 로그를 파일과 서버로 보내고,


Java Server 는 여러개의 MFC Client 가 보내는 로그를 저장한다.




테스트 환경은


MFC Client 와 Java Server 가 동일 호스트 이다.




MFC Client


log4j.rootLogger=DEBUG, filelog, remoteserver


rootLogger 에 필요한 로그 Appender 를 추가한다.


remoteserver라는 Appender 를 설정한다.


SocketAppender 를 사용하고, localhost:4445 에 연결한다.


# using remoteserver appender

log4j.appender.remoteserver=org.apache.log4j.net.SocketAppender

log4j.appender.remoteserver.remoteHost=localhost

log4j.appender.remoteserver.port=4445

log4j.appender.remoteserver.locationInfo=true

log4j.appender.remoteserver.ReconnectionDelay=10000






Java Server



테스트에서는 


log4j-1.2.17 버전을 사용하였다.


log4j-1.2.17.zip



압축을 푼 후 jar 파일을 Library 로 add 한다.





서버의 설정은 log4j-server.properties


RollingFileAppender 를 사용하여


파일 단위로 Log 를 저장한다.




log4j.rootLogger=DEBUG, file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=logfile.log

log4j.appender.file.MaxFileSize=1MB

log4j.appender.file.MaxBackupIndex=1

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=[%d] [%t] [%m]%n





Java Server Code



public class Test

{

public static void main(String[] args) {

        try  

        {  

       

        String[] arguments = {"4445", "log4j-server.properties"};  

        SimpleSocketServer.main(arguments);  


        }  

        catch (Exception ex)  

        {  

          System.out.println(ex.getMessage());

        }  

}

}