2013-03-12 2 views
5

양식에 대한 간단한 질문입니다.자바 - 로그 메시지에 상수를 사용해야합니까?

다양한 오류 메시지가 기록되며 로그 호출 내에서 메시지에 대한 새 문자열을 만들거나 다른 문자열 상수를 저장하는 데 사용하는 인터페이스 내에서 상수 문자열을 만들어야하는지 궁금합니다. . 코드 분석기 코드를 사용하고 있는데 후자는 문자열이 한 번만 사용 되더라도 문자열 상수를 만들고 참조하는 것이 더 바람직하다고 말했습니다. 이것이 사실인지 궁금합니다. 사전

+0

이것은 토론 유형 질문이며 아마도 닫힐 것입니다. 그러나 나는 기여하지 않을 수 없습니다. 로그 메시지는 상수 키에 의해 참조되는 특성 파일에 속하므로 필요한 경우 다른 언어로 변환 할 수 있습니다. –

+3

@ ErnestFriedman-Hill : 로그 메시지는 런타임 디버깅 도구이며 사용자가 볼 수있는 것이 아닙니다. –

+0

코드가 제 3 자에 의해 사용되는 jar 파일로 들어가면 기록 된 오류 메시지가 현지화 되십시오! –

답변

3

에서

덕분에 나는 당신이 무엇을 사용 분석기 도구 확실하지 않다 또는 당신이 그것을 구성하지만 어떻게 조언은 나에게 잘못된 것 같습니다. Java 컴파일러는 이미 문자열 상수를 생성합니다 (코드가 log 메소드를 호출 할 때 일반적으로 새 String 인스턴스를 할당하지 않음). 따라서이 작업을 수동으로 수행하는 것이 무엇이겠습니까?

문자열 상수를 인터페이스에 넣으면 클래스간에 공유 할 수 있지만 생각한 방식으로 공유 할 수는 없습니다. Java 컴파일러는 상수의 값을 사용중인 코드에 복사합니다 (결과 바이트 코드에 더 이상 인터페이스에 대한 참조가 없습니다!)

내 제안 :이 잘못된 경고를 해제하십시오.

+0

나중에 고맙습니다! 다음을 확인하십시오. https://stackoverflow.com/questions/446663/best-way-to-define-error-codes-strings-in-java –

2

로깅은 쉽게 추가하고 제거 할 수 있어야합니다. 단순히 매우 얇은 층을 제공하십시오. 그리고 MessageFormats가 사용되는 경우가 있습니다. MessageFormats는 일정한 이름으로 대체 될 때 오류가 발생하기 쉽거나 선택을 취소 할 수 있습니다.

또한 상수가 변경되면 문자열 상수를 가져오고 변경 사항을 더 이상 감지 할 필요가 없습니다.

또한 로그 문자열은 매우 엄격하고 유익하지 않습니다.

해당 문자열을 국제화가 불가능한 것으로 표시하는 것이 좋습니다.

관련 문제