Symfony2 配置自己的log日志、使用配置文件定义全局常量

      Symfnoy框架自带monolog,输出到项目的app/logs下。如果想在程序运行时,把一些需要的信息记录到特定的日志里,这里可以找到答案。记录log可以方便理解程序业务逻辑及流程,也给调试bug提供了查找信息。

一、在NewBundle的配置service.yml中配置

my_logger:
class: Symfony\Bridge\Monolog\Logger
arguments: [my]
calls:
- [pushHandler, ["@my_handler"]]

my_handler:
class: Monolog\Handler\StreamHandler
arguments: [%kernel.logs_dir%/%kernel.environment%.my.log]

便可以在control中使用该log,例如

$logger = $this->container->get('my_logger');
$logger->debug(date('Y-m-d H:i:s'));
$logger->debug("MY LOG.");
$logger->debug("sql=".$sql);

然后运行程序,可以看到自定义的log已经生成,即prod.my.log

打开该日志,可以看到

[2013-01-14 16:13:14] my.DEBUG: 2013-01-14 16:13:14 [] []
[2013-01-14 16:13:14] my.DEBUG: MY LOG. [] []
[2013-01-14 16:13:14] my.DEBUG: sql=select * from symfony_use [] []
[2013-01-14 16:18:01] my.DEBUG: 2013-01-14 16:18:01 [] []
[2013-01-14 16:18:01] my.DEBUG: MY LOG. [] []
[2013-01-14 16:18:01] my.DEBUG: sql=select * from symfony_use [] []
[2013-01-14 16:18:13] my.DEBUG: 2013-01-14 16:18:13 [] []
[2013-01-14 16:18:13] my.DEBUG: MY LOG. [] []
[2013-01-14 16:18:13] my.DEBUG: sql=select * from symfony_use [] []
[2013-01-14 16:18:14] my.DEBUG: 2013-01-14 16:18:14 [] []
[2013-01-14 16:18:14] my.DEBUG: MY LOG. [] []
[2013-01-14 16:18:14] my.DEBUG: sql=select * from symfony_use [] []

二、配置文件定义全局常量,例如一些版本信息等

1、先在项目app/config中新建一个version.yml文件

在version.yml文件中定义常量

2、在config.yml中引入version.yml

现在可以在control中使用这些常量,例如在一个control的action中调用

$version = $this->container->getParameter('sym_version');

原文地址:https://www.cnblogs.com/dluf/p/2859932.html