2009-12-18 63 views
11

我想在symfony中设置一个额外的日志文件,这样一些消息(在我的情况下就是付款处理)会从symfony的其余部分转到另一个文件。可能吗?symfony中的多个日志文件

这里是我当前的日志配置从factories.yml

all: 
    logger: 
    param: 
     level: debug 
     loggers: 
     sf_file_debug: 
      param: 
      level: notice 
      file: /var/log/symfony/%SF_ENVIRONMENT%/%SF_APP%.log 

回答

0

检查插件:sfAdvancedLoggerPlugin。你可以用它做很多日志事件。

sfAdvancedLogger允许先进的日志记录功能,例如PHP错误 记录,电子邮件警报和条件记录

1
all: 
    logger: 
    class: sfAggregateLogger 
    param: 
     level: debug 
     loggers: 
     sf_file_debug: 
      class: sfFileLogger 
      param: 
      level: debug 
      file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log 
     sf_file_debug_additional: 
      class: sfFileLogger 
      param: 
      level: debug 
      file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%_additional.log 
11

daviweb的解决方案将消息记录到两个记录文件,

新的独立的记录器可以使用代码创建:

$logPath = sfConfig::get('sf_log_dir').'/your-custom.log'; 
$custom_logger = new sfFileLogger(new sfEventDispatcher(), array('file' => $logPath)); 

$custom_logger->info("My log message!"); 
+1

这里最重要的是创建一个Envent调度器的新实例。如果您引用控制器的默认事件分派器,则所有日志都将转到您的自定义日志文件。 – Dziamid 2011-06-08 09:28:48