2011-07-05 71 views
0

我是log4php的新手。log4php中的动态文件路径

我想保存日志,如/logs/UserId/Info_ddmmyyyy.php。

这里UserId是动态数据。

只是我想保存日志用户明智。

是否有任何方法动态更改日志文件路径

回答

5

默认情况下不支持此行为。但是您可以扩展LoggerAppenderFile(或RollingFile,DailyFile,无论您的偏好是什么)来支持它。

为此创建自己的类并将其加载到脚本中。

然后从这个类扩展: http://svn.apache.org/repos/asf/logging/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php

class MyAppender extends LoggerAppenderFile { ... } 

你需要覆盖setFile()方法,类似于:

public function setFile($file) { 
    $path = getYourFullPath(); 
    $this->file = $path.$file; 
} 

所有你需要使用新的追加程序后在你的配置

log4php.appender.myAppender = MyAppender 
log4php.appender.myAppender.layout = LoggerLayoutSimple 
log4php.appender.myAppender.file = my.log 

请注意,而不是给你的日志文件的完整路径,你现在需要添加一个普通的名字。完整路径(包括用户名)必须使用getYourFullPath()方法进行计算。

希望有帮助! Christian

+0

谢谢克里斯蒂安。这个对我有用 – i0707