출처 : http://www.nurs.or.jp/~sug/soft/log4j/index.htm

번역 : 2007. 02. 27  ( jacking75@gmail.com )

 

 

Log4J 철저 해설

목차

1.   

2.    사용법 (1)

3.    사용법 (2)

4.   기본Appender

5.    파일 보존계Appender

6.    네트워크계Appender

7.    JMSAppender

8.    OS 로그계Appender

9.    JDBCAppender

10. 외Appender

11. 1.3에서 추가 Appender

12. 필터 기능

13. Joran Hacks(1.3)

14. Self Appender 쓰는 !(1.3)

15. Chainsaw(1.3)

16. 어스펙트 좋아니까?

17. Log4cxx 소품

18. Log4php 사용법

19. Log4php Appender

원래 이 문서는 버젼 1.2.8를 베이스로 쓴 것이지만 2006년 중에 1.3이 릴리스 된다고 아나운스 되고 있기도 하여 플라잉인가(?)라고 생각하지 않는 것도 아니지만 1.3 대응을 했습니다! 그리고, 아무래도 요망의 있는 듯한 log4php에 대한 것을 추가!

최근 Log4J를 사용한 로깅은 증가하고 있다. , Struts가 붐으로 Struts(실질상의) 디폴트 로그 툴이 Log4J 이니까 넓게 사용되게 되었는데 이것은 여러 가지로 재미있다. 그러나 보통 사용하고 있는 부분은 RollingFileAppender 로테이트 하는 로그 파일을 만드는 것이 경우로 별로 상세 하게까지 해설되어 있지 않은 것이 많은 편이지만 실은 필자는 어떤 이유로 Log4J Hack 했으므로(파고 들었으므로) Log4J 의 재미있는 사용법」이라고 하는 견지에서 해설을 써 보려고 한다.

「어떤 이유」라고 하는 것은 실은 JAVAPRESS (기술 평론사) 로부터 집필 의뢰가 들어와서 「여기까지 할 수 있다 Web 어플리케이션 시큐러티 대책!」이라고 하는 총 타이틀의 아래에서 필자는 「 제6장:침범되었을 때의 분석과 대책」을 담당하게 되었다. 그리고 「JAVAPRESS 」이다. 무엇이 Java 재료를 생각하지 않지 않으면... 이라고 하는 것으로 생각난 것이 「Log4J 의 재미있는 사용법」이지만 실은 그 전의 호(9월 발매) Log4J를 채택하게 되어 있었기 때문에 보트로 해 버렸다. 그러나 재미있고 상당히 hack도 했으므로 아깝다... 그렇다고 하는 이유로 홈 페이지상에서 하기로 했다.

그렇다고 하는 것으로 있다.  JAVAPRESS 」도 구매해 주셨으면 한다. 과연 조금 집필 내용을 홈 페이지에 올라가는 것은 발매 뒤로 하려고 하지만 이것은 보트 내용이므로 상관없는데.

그러고 보면 JAVAPRESS는 죽으셨다... 명복을 기원하겠습니다.

실제 Log4J는 재미있다. 보통은 프로그래머의 담당은 로그를 토해내는 곳까지지만 Log4J는 토해낸 로그를 여러 가지 수단으로 「보낸다」라는 것이 생긴다. 게다가 그것은 설정 파일에 의해서 사후적으로 변경할 수 있다는 것이다!  이 부분이 아주 재미있는 것이므로 반드시 「에∼~」라고 생각하는 것이 필요로 하는 사람이 있음에는 틀림없다. 그리고 Log4J C++ 판으로서 Log4cxx가 있지만 이것도 기본적으로 Log4J와 같다. 퍼포먼스면에서 문제가 생기는 케이스에서는  native code로 움직여 「스레드 구멍」이라고 생각할 필요가 없다 Log4cxx를 사용하는 것이 적절한 경우도 있으므로 이것에 대해서도 해설 해 버리려고 한다.

기본적으로 내용은 필자의 hack에 의한 정보이다. Deep 물건이라든지 버그 회피라든지도 있거나 하므로 그 정도의 해설보다 훨씬 재미있는 것을 보증 할 수 있다.

!!NEW!! 샘플의 배포 패키지를 만들었다. 공용 도메인으로 괜찮으므로 놀며서 활용해 주기를 바란다. 해설 등은 아래에

*      해설

*      다운로드

상세 목차

*      개설&샘플

o   샘플 패키지

*      사용법 (1)

o   QuickStart

o   카테고리

o   로그 출력

o   레이 아웃

*      사용법 (2)

o   log4J 초기화

o   1.3 내부 로그

o   XML 설정 파일

o   JoranConfigurator(1.3)

o   Filter 기능

o   commons-logging로부터 사용한다

o   속도에 대한 배려

*      기본 Appdender

o   Appender base class AppenderSkelton

o   WriterAppender

o   ConsoleAppender

*      파일 보존계 Appender

o   RollingFileAppdender(1.2)

o   DailyRollingFileAppdender(1.2)

o   ExternallyRolledFileAppdender(1.2)

o   RollingFileAppender(1.3)

*      네트워크계 Appender

o   TelnetAppdender

o   SMTPAppdender

o   SMTPAppdender 송신 평가 룰(1.2)

o   SMTPAppdender 송신 평가 룰(1.3)

o   SocketAppdender

o   네트워크계Appdender 프롭퍼티(1.3)

o   SocketHubAppdender

*      JMSAppender

o   JMS

o   Topic 사용한다

o   메세지 구동형Bean 연동시킨다

*      OS 로그계 Appender

o   SyslogAppdender

o   NTEventLogAppdender

*      JDBCAppender

o   여러 가지 있는 것이다!

o   jdbc.JDBCAppender

o   db.DBAppender

o   DBAppender 설정 파일

o   데이타베이스측의 준비

o   DBAppender 스트래터지

*      Appender

o   AsyncAppdender

o   LF5Appdender

o   NullAppender

*      1.3에서 추가 Appender

o   1.3에서 등장한 운 Appender

o   UDPAppender

o   MulticastAppender

o   ListAppender

o   ListModelAppender

o   SoundAppender

o   MultiplexAppender

o   SandBox 는 Appender들(참고)

*      필터 기능

o  

o   필터 사용

o   FilterBasedTriggeringPolicy(1.3)

o   필터 일람~1.2 호환

o   필터 일람~1.3 신설

o   필터 일람~1.3 신설 특수 필터

o   ExpressionRule 추가

*      Joran Hacks(1.3)

o   jndiSubstitutionProperty

o   repositoryProperty

o   conversionRule

o   plugin

o   newRule

*      Self Appender 쓰는 !(1.3)

o   Appender 만드는 방법

o   Model 만드는 방법

o   로그 모니터

o   1.2 계의 Appender

o   AppendableAppender (베이스)

o   AppendableAppender ~응용:ListModel

o   AppendableAppender ~응용:JTable판LogMonitor

*      Chainsaw(1.3)

o   Chainsaw

o   Chainsaw v2

o   Chainsaw Receiver

*      어스펙트 좋아니까?

o   다운로드

o   트레이스 로그와 AOP

o   노테이션과 제휴다!

o   트레이스 로그 매입 툴의 사양

o   트레이스 로그 매입 툴의

o   변수를 감시한다

o   변수 감시 프로그램의 해설

*      Log4cxx 소품

o   Log4cxx 인스톨

o   Log4cxx 테스트

o   Log4cxx 사용한 소품

o   swatch 「합쳐서 하나!

*      Log4php 사용법

o   개설

o   XML 형식 설정 파일

o   서버 사이드·스크립트로의 이용

o   Log4php 의 Appender 일람

*      Log4php 의 Appender

o   LoggerAppenderConsole

o   LoggerAppenderEcho

o   LoggerAppenderFile

o   LoggerAppenderRollingFile

o   LoggerAppenderDailyFile

o   LoggerAppenderDb

o   LoggerAppenderMail

o   LoggerAppenderMailEvent

o   LoggerAppenderSocket

o   LoggerAppenderPhp

o   LoggerAppenderSyslog

o   LoggerAppenderNull