log4j 로깅 이벤트를 다른 응용 프로그램에서 기록중인 로그 파일에 기록하는 방법이 있습니까? 다른 응용 프로그램은 비 Java 응용 프로그램이 될 수 있습니다. 단점은 무엇입니까? 잠금 문제? 서식을 지정 하시겠습니까?Log4j 공유 로그 파일에 로깅
답변
Log4j에는 서비스에 이벤트를 보내는 SocketAppender가 있습니다.이 이벤트는 사용자가 직접 구현하거나 Log4j와 함께 제공되는 간단한 구현을 사용할 수 있습니다.
또한 syslogd와 Windows 이벤트 로그를 지원합니다. 이는 비 Java 응용 프로그램의 이벤트로 로그 출력을 통합하는 데 유용 할 수 있습니다.
성능에 문제가있는 경우 다양한 로깅 응용 프로그램간에 일관된 잠금 전략을 조정하려고 시도하는 대신 단일 서비스에서 로그 파일을 작성해야합니다.
각 응용 프로그램별로 로그를 기록한 다음 예약 된 작업을 시간에 따라 파일을 '지퍼'로 배치하는 것이 가장 좋습니다. 전체 로그에 대한 최신 액세스가 필요하면 매 시간마다이 로그를 실행할 수 있습니다.
Log4j는 이미 파일에있는 레코드와 호환되는 형식으로 로그 항목을 만들 수있을만큼 유연합니다. 특정 데이터 필드를 형식화하는 방법에 대해서는 appender를 살펴보십시오.
당신의 주요 관심사는 다른 응용 프로그램에서 잠금 가능성이 높습니다. 모든 응용 프로그램에 파일에 대해 독점적 인 잠금 기능이 없는지 확인하십시오.
나는 다음과 같은 두 가지 방법과 경험이 있습니다
- 를 사용하여 데이터베이스 대신에 일반 텍스트 파일의 로깅을 - 그것 때문에 성능 문제의 금지 할 수있다, 다른 한편으로는 로그를 분석하는 것은 매우 쉽습니다 , 보고서를 작성하십시오. 데이터베이스는 모든 동시성 문제를 처리합니다.
- 다른 접근 방식은 JBoss 서버 사용과 관련이 있습니다. JBoss 서버는 다른 소스에서 로깅 정보를 읽는 데 사용할 수 있습니다. JBoss는 최소 구성으로 실행될 수 있으며, 실제로는 경량 (2 초의 시작 시간)입니다. 자세한 내용은 http://docs.jboss.org/process-guide/en/html/logging.html (별도의 서버에 기록)에서 확인할 수 있습니다. Log4J는 모든 잠금/동시성 문제를 처리합니다.
JBoss를 사용하지 않으려는 경우 두 번째 방법을 자체 로깅 솔루션의 기반으로 사용할 수 있습니다.
기본 log4j 애 퍼더가 파일 잠금 또는 동기화를 수행하지 않는다고 생각합니다. 이러한 잠금이 없으면 로그 메시지가 손실되거나 맹 글링 된 메시지가 수신 될 수 있습니다.
Java에서 파일 잠금을하는 것이 얼마나 쉬운 지 잘 모르겠지만이 작업을 직접 수행하려면 적절한 Appender를 하위 클래스에 추가하고 로깅 방법을 재정의해야한다고 생각합니다. 잠금 코드는 동기화 코드로 래핑합니다 파일을 잠금 해제합니다. 시스템로드에 따라 성능에 영향을 줄 수 있습니다.
Log4perl에는 Appender, Log :: Log4perl :: Appender :: Synchronized가 동기화되어있어 Appender를 래핑하고이를 수행하며 Log :: Log4perl :: Appender :: File에 플래그를 제공하는 것으로 보입니다. 인터리빙 된 선. 자바에서 복제가 가능한지 확인해보십시오.
- 1. Log4j 별도의 파일에 로깅
- 2. 의 log4j - 프로젝트 모듈에 따라 여러 로그 파일에 로깅
- 3. 다른 패키지의 로그 메시지를 다른 파일에 로깅
- 4. Log4j : 이벤트가 잘못된 로그 파일에 나타납니다.
- 5. Log4j - 자신의 로그 파일에 쓰기 어려움
- 6. log4j : 패키지 별 로깅
- 7. Log4j 로깅 기반 클래스
- 8. 서버 로깅 - 데이터베이스 또는 로그 파일에 있습니까?
- 9. xml 로그 파일에 xml 데이터 로깅
- 10. log4j 로그 파일 이름?
- 11. Log4j 로그 수집기?
- 12. log4j 로그 파일의 플러그인 버전
- 13. 다른 환경에서 응용 프로그램에 대한 로깅 Log4j
- 14. 플렉스의 로컬 파일에 로깅
- 15. 로깅 수준 변경시 알림 Log4j
- 16. 여러 파일에 파이썬 로깅
- 17. 화면 및 파일에 로깅
- 18. JMX를 통한 Log4J 로깅 다시 시작
- 19. iPhone의 파일에 로깅
- 20. 여러 대의 syslog 서버에 로깅 - log4j
- 21. 로그 수준에 따라 같은 파일에 서로 다른 log4j 패턴이 있습니까?
- 22. 민감한 데이터에 대한 log4j 로깅 사용자 정의
- 23. log4j Solr을 사용한 로그 인덱싱
- 24. Seam log4j 자격 증명 로그
- 25. 클러스터 환경에서 log4j 구성
- 26. 각 개별 스레드에 대한 개별 로그 파일에 로깅
- 27. 로그 파일 대신 유닉스에서 catalina.out에 로깅
- 28. 로그 파일에 직접 링크됩니까?
- 29. 프로그래밍 방식의 log4j
- 30. log4j, fileappender 및 tomcat6 로그 질문