2017-04-18 4 views
0

특정 모듈이 log4perl을 사용하여 기록하는 경우 log4perl을 내부적으로 사용하여 해당 모듈의 이름을 얻는 방법이 있습니다. 또는 메시지가 srcipt (.pl)에서 로그됩니다. 우리는 log4perl 함수를 명시 적으로 사용하지 않는 호출자 나 함수를 사용하는 것 외에는 log4perl을 사용하여 스크립트의 이름을 얻을 수 있습니까?log4perl을 사용하여 메시지를 기록하는 모듈 또는 스크립트의 이름 얻기

답변

2

클래스 또는 패키지의 경우이를 수행 할 수 있습니다. documented with Log::Log4perl::Layout::PatternLayout입니다. 로그 패턴에서 다음 중 하나를 사용하십시오.

그리고 스크립트의 이름

%C Fully qualified package (or class) name of the caller 
는 :

%F File where the logging event occurred 

이 사람도 유용합니다

%l Fully qualified name of the calling method followed by the 
    callers source the file name and line number between 
    parentheses. 
%L Line number within the file where the log statement was issued 

Log::Log4perl::Layout::PatternLayout 설명서에 더 자세한 내용이 있습니다.

Here's an example 구성 파일과 함께 사용하는 방법. 나도 몰라

log4perl.appender.LOGFILE.layout=PatternLayout 
log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n 
+1

@Mr_perl. 다음 번 질문에 이미 알고있는 것을 포함 시키십시오. 문서에서이 부분을 찾으려면 몇 분이 걸렸습니다. 자신의 연구를 포함 시키면 그렇게 할 필요가 없었습니다. – simbabque

+0

@ Mr_perl : 그렇다면 귀하의 요구 사항을 이해하지 못합니다. 해당 모듈 내에서 호출 모듈의 이름을 얻으려는 것 같지만 이미 자체 이름을 알고 있습니다. 작성하고자하는 코드의 적절한 예를 제공해주십시오. – Borodin

+1

@ Mr_perl 질문에 더 많은 정보를 포함하십시오. [edit your question] (http://stackoverflow.com/posts/43467923/edit) 할 수 있습니다. – simbabque