dulyanov/log4php-graylog2

Log4php 后缀和布局,用于与 Graylog2 兼容

1.0.4 2016-01-27 14:43 UTC

This package is not auto-updated.

Last update: 2024-09-28 12:39:33 UTC


README

===== 关于

版权(c)2012-2016 德米特里·乌利扬诺夫

在这里您可以找到 2 个新的 Log4php 后缀:LoggerAppenderAMQP 和 LoggerAppenderGraylog2。您可以使用它将日志消息传递给 Graylog2 或 AMQP(例如 RabbitMQ)。

后缀 LoggerAppenderGraylog2 可以直接将消息传递给 Graylog2 服务器。后缀 LoggerAppenderAMQP 可以将消息传递给 AMQP 服务器。在这种情况下,您可以设置您的 graylog2 以接收来自 AMQP 的消息。

如果您想以 GELF 格式传递消息,请使用特殊的布局:LoggerLayoutGelf

============ 安装

对于 composer 用户

  1. 将其添加到您的 composer.json 中
{
    "require": {
        "dulyanov/log4php-graylog2": "~1.0"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/d-ulyanov/log4php-graylog2.git"
        }
    ]
}
  1. 运行 composer.phar update

对于其他用户

  1. 设置您的 log4php 配置文件(请参阅 exampleConfig.xml)
  2. 使用您的新记录器
require 'log4php/Logger.php';
require 'log4php-graylog2/src/main/php/bootstrap.php';

============= 配置

XML

<configuration xmlns="https://logging.apache.ac.cn/log4php/">
    <appender name="MyAMQPAppender" class="LoggerAppenderAMQP">
        <param name="host" value="example.com" />
        <param name="port" value="5672" />
        <param name="vhost" value="/logs" />
        <param name="login" value="my_login" />
        <param name="password" value="my_secret_password" />
        <param name="exchangeName" value="my_exchange" />
        <param name="routingKey" value="php_application" />
        <param name="contentType" value="application/json" />
        <layout class="LoggerLayoutGelf" />
    </appender>
    <appender name="MyGraylog2Appender" class="LoggerAppenderGraylog2">
        <param name="host" value="192.168.1.123" />
        <param name="port" value="12201" />
        <layout class="LoggerLayoutGelf" />
    </appender>
    <root>
        <level value="DEBUG" />
        <appender_ref ref="MyAMQPAppender" />
        <appender_ref ref="MyGraylog2Appender" />
    </root>
</configuration>

PHP

array(
    'rootLogger' => array(
        'appenders' => array('MyAMQPAppender', 'MyGraylog2Appender')
    ),
    'appenders' => array(
        'MyAMQPAppender' => array(
            'class' => 'LoggerAppenderAMQP',
            'params' => array(
                'host' => 'example.com',
                'port' => 5672,
                'vhost' => '/logs',
                'login' => 'my_login',
                'password' => 'my_secret_password',
                'exchangeName' => 'my_exchange',
                'routingKey' => 'php_application',
                'contentType' => 'application/json'
            ),
            'layout' => array(
                'class' => 'LoggerLayoutGelf'
            )
        ),
        'MyGraylog2Appender' => array(
            'class' => 'LoggerAppenderGraylog2',
            'params' => array(
                'host' => '192.168.1.123',
                'port' => 12201
            ),
            'layout' => array(
                'class' => 'LoggerLayoutGelf'
            )
        ),
    ),
);

===== 使用

Logger::configure('exampleConfig.xml', 'LoggerConfigurationAdapterXML');

$myLogger = Logger::getLogger('MyLogger');
$myLogger->debug("Hello world!");