사실 이 log4net과 log4j는 같은 라이브러리인데 사용하는 언어가 C#이냐 Java이냐의 차이만 있을 뿐입니다.

 

전의 글에서도 로그에 대해 간략하게 설명했었는데 정리해서 다시 설명하겠습니다.

 

 

로그라는 것은 프로그램을 개발하는 데 있어서 데이터 추적과 호출된 클래스와 함수등을 조사하기 위해 사용하는 라이브러리입니다.

 

 

 

 


 

 

 

보통 개발을 할 때는 IDE툴을 이용해서 디버깅을 하면 데이터 추적을 할 수 있지만 개발이 끝나고 나서 프로그램이 컴파일 되고 Production에 릴리즈가 되면 데이터 추적하기가 쉽지 않습니다.

 

 

그러나 완벽한 프로그램이라면 문제가 없겠지만 인간이 만든 프로그램이기 때문에 버그가 발생하고 그 버그로 인해 잘못된 연산을 하거나 에러가 발생합니다. 에러가 발생할 때는 데이터를 추적할 수 있어야 하는데..

그 때, 추적을 할 수 있는 여러 방법 중에 가장 간편한 방법 중에 하나로 로그를 남기고 추적하는 방법입니다.

 

 

그 외에 로그는 꼭 에러 추적만이 아닌 여러 행동 패턴을 남기고, 또는 유저의 행동등을 추적하여 여러 통계자료로도 활용할 수 있습니다.

 

 

그럼 Java에서 Log4j를 사용하기 위해서는 maven를 통해서 log4j를 다운 받아야 합니다.

 

 

 


 

 

 

코드

 

 

 

 

d:\log4j.xml

 

 

 

 

 

log4j의 경우는 log4net과 다르게 소스상에서 설정은 없는 것 같습니다. 원래는 있는데 제가 찾지를 못하는 것일 수도 있습니다.

링크 - https://logging.apache.org/log4j/2.0/manual/api.html

 

 

저의 경우는 property설정으로 log4j파일을 지정했습니다만, 사실 웹 프로젝트라면 resource 폴더에 넣고 별도의 설정이 없이도 xml를 찾아 읽을 것 입니다.

그러니 log4j.xml 설정을 하기 위해 resource 경로 설정에 대해 신경 쓰지 않아도 될 것 같습니다.

 

 

그리고 xml 설정이 아니라 json 설정으로도 되는 듯 싶습니다. 그러나 개인적으로 환경설정 파일은 xml이 낫지 않을 까 싶네요. json은 편하긴 하지만 가독성이 좀 떨어져서...

 

 

 

 

여기까지 Java에서 사용하는 로그 라이브러리(log4j)에 대한 글이었습니다.



 

 

 


 

 

이건 참고하면 좋을 듯,,

[Logging] slf4j, log4j, logback, log4j2

[스프링부트 (5)] Spring Boot 로그 설정(1) - Logback

[스프링부트 (6)] Spring Boot 로그 설정(2) - DB로그(log4jdbc)