log4php中的动态文件路径

时间:2011-07-05 14:23:37

标签: log4php

我是log4php的新手。

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

此处UserId是动态数据。

我想明智地保存日志用户。

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

1 个答案:

答案 0 :(得分: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;
}

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

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

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

希望有所帮助! 基督教