log4php中的动态文件路径

i07*_*707 0 log4php

我是log4php的新手.

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

这里UserId是动态数据.

简单地说,我想明智地保存日志用户.

有没有办法动态更改日志文件路径

Chr*_*ian 5

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

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

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

class MyAppender extends LoggerAppenderFile { ... }
Run Code Online (Sandbox Code Playgroud)

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

public function setFile($file) {
    $path = getYourFullPath();
    $this->file = $path.$file;
}
Run Code Online (Sandbox Code Playgroud)

毕竟你需要在配置中使用新的Appender

log4php.appender.myAppender = MyAppender
log4php.appender.myAppender.layout = LoggerLayoutSimple
log4php.appender.myAppender.file = my.log
Run Code Online (Sandbox Code Playgroud)

请注意,您现在需要添加简单名称,而不是提供日志文件的完整路径.必须使用getYourFullPath()方法计算完整路径(包括用户名).

希望有所帮助!基督教