표준 집합을 내 응용 프로그램의 중요한 중요 시점에 제공 할 수있는 API를 찾고 싶습니다. 구체적으로는 (기초 외에) 다음과 같은 정보를 여러 줄의 메시지가 될 것입니다 :자세한 (및 여러 줄) 로그 용 Java 로깅 API
- 로깅 카테고리
- 짧은 설명 제목
- 설명
- 대응 조치 (손상 제어) 하나의 멀티 라인 로그 전자에 대한보고와 (등 예외 정보)
- 정보를 취할 것입니다 내 응용 프로그램
xample, 그래서 같은 :
2017-11-10 14:26:59,156 [main] WARN o.s.t.c.s.ExampleClass:
Caption: Unconformable data
Description: The data provided from the X datasource in order to perform Y operation could not be translated
Response Action: Application will discard unusable data into this component's DLQ
Details: The data string "x" was not of expected Integer type
<Some stacktrace>....
이가 발생하고 응용 프로그램이 예외의 이벤트에 대한 응답으로 무엇을하고 있는지, 여기서 발생한 정확히 무엇에 대해 매우 유익한 정보가 될 것 자세한 문입니다.
가장 가까운 JBoss logging API와 내가 찾은 코드 중 일부는 ActiveMQ Artemis source입니다.
@LogMessage(level = Logger.Level.WARN)
@Message(id = 202008, value = "Failed to check Address list {0}.",
format = Message.Format.MESSAGE_FORMAT)
void failedToParseAddressList(@Cause Exception e, String addressList);
그리고 하나는 서면으로 자신의 코드에 line with this message를 기록 할 것 : 메시지 형식 선언과 같이 하나의 파일에서 정의 할 수 있습니다
I가 찾을 수있는 가장 가까운입니다ActiveMQUtilLogger.LOGGER.failedToParseAddressList(e, addressList);
내가 찾고 있었어. 아주 멋지다. 그러나, 나는 JBoss를 사용하지 않고있다. (그리고 또한 그 API를 잠그고 싶지도 않다.)
레이아웃에서 사용할 수있는 StructuredDataMessage and Structured Data Lookup이있는 LOG4J를 사용할 수 있으며, 기본적으로이를 사용하게됩니다. 내 코드는이 문제를 해결하기 위해 StructuredDataMessage
팩토리에 위임 할 수 있습니다. 그러나이 JBoss API와 같은 것을 사용하는 것보다 조금 더 복잡합니다.
다른 API, 코드 패턴 또는 멋진 트릭이든이 문제에 대한 제안 사항이있는 사람이 있습니까?
어떤 종류의 용기에서 뛰고 있습니까? 패턴을 사용하여이를 수행 할 수는 있지만 사용중인 로그 관리자에 따라 다를 수 있습니다. –