2017-04-18 42 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請在您的問題中提供更多信息。你可以[編輯你的問題](http://stackoverflow.com/posts/43467923/edit)。 – simbabque