Notice
Recent Posts
Recent Comments
Link
관리 메뉴

설.현.아빠

[Log4J] 간단한 소개 본문

안드로이드/Debug

[Log4J] 간단한 소개

설.현.아빠 2011. 2. 11. 09:46


로깅 API의 필요성

 

애플리케이션을 개발할 때 디버깅을 위해서 System.out.println을 사용하는 경우가 많다. 윈도우의 경우 명령 프롬프트에서 출력 결과를 볼 수 있어 디버깅 툴로 IDE를 쓰지 않을 때에 가장 단순하고 편리한 방법으로 인식되어 왔다. 간단한 애플리케이션인 경우에는 System.out.println을 사용하여도 크게 관계는 없다. 그렇지만 간단한 테스트 정도가 아니고 애플리케ㅣㅇ션이 일정 정도의 규모를 넘어서는 복잡성을 지닐 때는 이 방법에는 몇 가지 문제가 있다.

 

문제가 되는 지점 찾기

시스템 출력을 사용하여 널 포인터 에러를 찾거나 애플리케이션이 어느 곳까지 실행되었는지 찾아야 하는 경우가 있다. 어디까지 에러없이 실행되었는지 알고자 할때는 출력 내용상 별 의미가 없는 문장을 출력하는 등의 방ㄷ법을 사용하게 되는데, 일단 문제가 없는지를 찾고 해결하고 나서 그냥 놔두면 소스 코드가 지저분하고 속도에도 영향을 미칠 수 있는 가능성이 많기 때문에 출력문을 주석 처리하거나 지우는 것이 일반적이다. 그러나 애플리케이션이라는 것이 프로그래머가 생각할 수 있는 일반적인 데이터만 들어가는 것이 아니고 여러 상황에 의해서 어디서든지 에러가 날 가능성이 있다. 어떤 데이터를 넣었는데 에러가 났다고 하면 다시 출력문을 추가하거나 주석 처리 부분을 주석처리를 제거하고 다시 컴파일하여 에러가 나는 데이터를 입력해보아서 문제가 되는 지점을 찾아야만한다.

 

원격 컴퓨터에서의 출력

시스템 출력이 원격 컴퓨터에서 실행되는 것이라면 시스템 출력문을 볼 수 있는 방법이 한정되어 있다. 원격으로 접속하여 java명령어를 실행하여 자바 버추얼 머신을 실행한 화면에서만 출력을 볼 수 있으며 몇몇 웹 애플리케이션 서버의 경우 시스템 출력을 별도의 로그 파일로 만드는 기능도 제공하고 있지만 방법이 한정되어 있는 것은 마찬가지다.

 

운영자 수준의 정보

애플리케이션이 실행될 때 프로그래머 수준에서는 디버깅을 위한 정보가 가장 필요할 수 있지만 애플리케이션 운영자의 입장에서는 다르 ㄴ실행 정보가 더 중요할 수 있다. 아파치 웹서버의 접속정보 로그 파일과 같은, 운영자 수준에서 필요한 정보를 출력하는 것은 시스템 출력문을 사용해서는 적합하지 않다.

[출처] [Log4J] 간단한 소개|작성자 써니

Comments