日志记录与独白

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.0,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

日志记录与独白

欧宝娱乐app下载地址Symfony提供了外部库,调用独白——允许您创建日志,可以存储在各种不同的地方。

日志消息

获取日志消息日志记录器服务容器的控制器:

1 2 3 4 5 6 7 8 9 10 11 12 13
公共函数indexAction(){美元日志记录器=美元- >get (“日志”);美元日志记录器- >信息(“我刚日志记录器”);美元日志记录器- >错误(“出错”);美元日志记录器- >关键(“我离开烤箱上!”,数组(/ /包含额外的“上下文”在你的日志信息“原因”= >“in_hurry”));/ /……}

日志记录器服务不同的日志级别/优先级有不同的方法。您可以配置基于日志记录器做不同的东西水平消息(如。发送邮件时发生错误)。

看到LoggerInterface所有的日志记录器的方法。

日志存储在哪里

的配置在哪里日志存储在特定的生活环境配置文件:config_dev.ymlconfig_prod.yml

默认情况下,日志条目写入var /日志/ dev.log当你在文件dev环境。在刺激环境,日志写入var /日志/ prod.log,但只有在一个请求,一个错误或高优先级日志条目(即。错误(),关键(),alert ()紧急())。

要控制这一点,您将配置不同处理程序处理日志条目,有时修改它们,并最终存储它们。

处理程序:写日志到不同的位置

记录器有一堆处理程序,每个可以用来写日志条目的不同位置(如文件、数据库、松弛等)。

提示

你可以配置日志“通道”,这就像类别。每个通道可以有它自己的处理程序,这意味着您可以存储在不同的地方不同的日志消息。看到如何为不同的文件日志消息吗

欧宝娱乐app下载地址Symfony预配置的一些基本的处理程序config_dev.ymlconfig_prod.yml文件。检查这些一些实际的例子。

这个示例使用两个处理程序:(写一个文件)syslog写日志使用syslog功能:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# app / config / config.yml独白:处理程序:#这“file_log”键可以是任何东西file_log:类型:#日志var /日志/(环境). log路径:“% kernel.logs_dir % / % kernel.environment % . log”# * *所有日志消息(调试是最低水平)水平:调试syslog_handler:类型:syslog#日志错误水平和更高的消息水平:错误

这定义了一个堆栈的处理程序和处理程序的顺序被称为它的定义。

处理程序修改日志条目

而不是写日志文件,一些处理程序是用于过滤或修改日志条目在发送之前其他处理程序。一个强大的,内置的处理程序fingers_crossed用于刺激默认的环境。它存储所有在一个请求,但日志消息只有将它们传递给另一个处理程序,如果达到的一个消息action_level。把这个例子:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# app / config / config.yml独白:处理程序:filter_for_errors:类型:fingers_crossed#如果* *日志错误或更高,通过* * file_logaction_level:错误处理程序:file_log#现在通过* *日志,但只有一个日志错误或更高file_log:类型:路径:“% kernel.logs_dir % / % kernel.environment % . log”#仍然通过* *日志,仍然只有日志错误或更高syslog_handler:类型:syslog水平:错误

现在,如果连一个有一个日志条目错误水平或更高所有日志条目的请求是通过保存到一个文件file_log处理程序。这意味着你的日志文件将包含所有问题的细节要求,调试更容易!

提示

处理程序命名为“file_log”将不会被包括在堆栈本身是作为一个嵌套的处理程序fingers_crossed处理程序。

请注意

如果你想覆盖独白通过另一个配置文件配置,您将需要重新定义整个处理程序堆栈。两个文件的配置不能合并,因为订单事项和合并不允许控制命令。

所有内置的处理程序

独白了许多内置的电子邮件日志处理程序,发送Loggly,或通知你松弛。这些都是记录在MonologBundle本身。一个完整的列表,请参阅独白配置

如何旋转你的日志文件吗

随着时间的推移,能长到日志文件巨大的在开发和生产。一个最佳实践的解决方案是使用一个工具一样logrotateLinux命令旋转日志文件之前,他们变得太大。

另一个选择是独白旋转文件供你使用rotating_file处理程序。每天这个处理程序创建一个新的日志文件,也可以自动删除旧的文件。使用它,只是设置类型选择你的处理程序rotating_file:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
# app / config / config_dev.yml独白:处理程序:主要:类型:rotating_file路径:' % kernel.logs_dir % / % kernel.environment % . log '水平:调试#让最大数量的日志文件#默认为零,这意味着无限的文件max_files:10

添加额外的数据,每个日志(例如,一个独特的请求令牌)

独白也支持处理器:函数可以动态地添加额外的信息到您的日志条目。

看到如何添加额外的数据日志消息通过处理器呢获取详细信息。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。