2013-04-17 150 views
1

我用Apache2和ModPerl託管我的Catalyst Web應用程序。 Web應用程序使用Log4perl模塊來生成日誌文件。催化劑:Log4perl和Apache

問題是隻有在Apache服務啓動時纔會生成日誌條目。之後沒有生成新的條目。

如果我使用催化劑的集成開發服務器來代替,日誌條目會正常生成。

我已經檢查了訪問權限,這些看起來沒問題:apache進程是所有者,可以寫入。

任何一個想法是什麼導致這個問題???

這是我log4perl配置:

log4perl.logger.myapp = INFO,LOGFILE

log4perl.appender.LOGFILE =登錄:: Log4perl :: Appender的::文件

log4perl .appender.LOGFILE.filename = myapp.log

log4perl.appender.LOGFILE.mode =追加

log4perl .appender.LOGFILE.layout =的PatternLayout

log4perl.appender.LOGFILE.layout.ConversionPattern = [%d] [%P]%米%正

回答

0

我設置上的Apache2而mod_perl運行一個測試程序我得到了這個工作。以下是我對它所做的說明。

我使用Log :: Log4perl :: Catalyst在Catalyst中執行日誌記錄。你提到使用Log4perl,但我不知道你是否使用Catalyst擴展。在我的主包中,我有這些行:

use Log::Log4perl::Catalyst; 
... 
__PACKAGE__->log(Log::Log4perl::Catalyst->new('/full/path/to/l4p.conf')); 

我確實必須指定日誌配置文件的完整路徑。我添加了一些日誌記錄來確保工作。

我上面使用了你的示例,但我確實改變了一件事。我不得不再次指定一個完整路徑日誌位置:

log4perl.appender.LOGFILE.filename=/full/path/to/myapp.log 

一旦我做這些事情,擊中更新日誌文件的主要場所。