문제

로깅에 log4J를 사용하는 클라이언트에 배포 될 JAR 파일이 있습니다. 내 질문은 JAR 파일에 log4j.xml 구성을 포함시켜야합니까?

내 느낌은 log4j.xml 구성 파일을 남겨 두는 것입니다 밖으로 Apache Jar 파일에는 모두 Log4J 로깅이 있지만 Sans Log4J.xml이 포함되어 있으므로 클라이언트 항아리입니다.

도움이 되었습니까?

해결책

예, 꺼내십시오. 앱의 60 개의 타사 라이브러리 중 하나에 자체가 포함되어 있기 때문에 Log4J 구성 파일이 무시 될 때 완전히 귀찮게합니다.

다른 팁

귀하의 경우 Log4J에 대한 좋은 점은 항아리가 실제로 그것에 대해 걱정할 필요가 없다는 것입니다. log4J의 기본 사용 사례는 다음과 같습니다.

  1. 현재 클래스의 로거 객체를 얻으십시오
  2. 해당 로거의 방법 중 하나를 호출하십시오. debug("some message");

배송중인 항아리가 더 큰 응용 프로그램에서 사용하는 경우, 코드는 위에 나열된 두 단계 만 수행합니다. 이러한 방식으로 코드는 클라이언트 응용 프로그램에서 이미 구성된 LOG4J 인스턴스에서 단순히 로거 객체를 얻습니다. 그런 다음 생산 코드는 Log4J를 구성하는 방법을 알아야하는 데 분리됩니다.

단위 테스트 setup () 메소드에서 log4J 인스턴스를 구성하거나 클라이언트로 이동하는 프로덕션 코드와 번들로 번들리지 않는 유사한 내용을 구성하여 항아리 개발을 위해 볼 수있는 모든 로깅을 수행 할 수 있습니다.

문서에서 고객에게 유용 할 것으로 예상되는 기본 LOG4J 구성을 넣을 것입니다. 이런 식으로 관심있는 사람들은 당신이 가지고있는 로깅 옵션을 볼 수 있습니다 (일반적으로 특정 클래스는 사용자의 관점에서 더 흥미로운 로그 메시지가 있습니다). log4J를 사용하여 타사 lib가있을 때 성가신 것을 발견하고 문서화가 없으며 화면을 채우는 로그 메시지가 있으며 특정 로그 메시지를 활성화하거나 억제하는 방법을 알아 내려고 노력해야합니다.

응용 프로그램에서 log4j를 사용하는 경우 프로젝트에 포함시킵니다. 그렇지 않다면 왜 거기에 넣을 것인가? 클라이언트 A가 원하는 LOG4J 버전 1.2 및 클라이언트 B가 LOG4J 버전 1.3을 원한다면 어떻게해야합니까?

그들이 프로젝트에 필요한 것을 결정하고 당신이 필요로하는 것에 대해 걱정하게하십시오.

구성 XML을 추가하고 다른 구성 및 옵션을 표시하는 사용자를위한 명령어로로드합니다. 이를 통해 추가 로깅을 쉽게하거나 지원할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top