LoginSignup
1
2

More than 3 years have passed since last update.

laravel5.8のログをrsyslogで出力する

Last updated at Posted at 2019-07-23

laravel5.8のログをrsyslogで出力するよう設定したのでメモ

laravel側設定

laravel5.8では下記のログ出力方法が指定可能です。

名前 説明
stack 「マルチチャンネル」チャンネルを作成するためのラッパー機能
single シングルファイル/パスベースのロガーチャンネル(StreamHandler)
daily RotatingFileHandlerベースの毎日ファイルを切り替えるMonologドライバ
slack SlackWebhookHandlerベースのMonologドライバ
papertrail SyslogUdpHandlerベースのMonologドライバ
syslog SyslogHandlerベースのMonologドライバ
errorlog ErrorLogHandlerベースのMonologドライバ
monolog サポートしているMonologハンドラをどれでも使用できる、Monologファクトリドライバ
custom チャンネルを生成するため、指定したファクトリを呼び出すドライバ

今回は下記のようにsyslogを設定します。

config/logging.php
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            //'channels' => ['daily'],
              'channels' => ['syslog'],
            'ignore_exceptions' => false,
        ],

キャッシュをクリアします。

# php artisan config:cache

rsyslog設定

rsyslogのルールは上から順番に読み込まれるため、RULESの一番上にルールを追記します。
下記の例ではprogramnamelaravelの場合/var/log/laravel.logに出力する事を意味します。
laravelのログのprogramnameはデフォルトではlaravelです。
また以降のルールでログが出力されないように& stopを使用しています。

/etc/rsyslog.conf
#### RULES ####
:programname, isequal, "laravel" /var/log/laravel.log
& stop

最後にrsyslogを再起動します。

# service rsyslog restart

laravelのログが指定したログファイルに出力されるようになった。

# ls -l /var/log/ |grep laravel.log
-rw------- 1 root  root      891 Jul 23 23:05 laravel.log

(参考)Laravel 5.8 ログ
https://readouble.com/laravel/5.8/ja/logging.html

(参考)rsyslog のメモ
https://ngyuki.hatenablog.com/entry/2016/04/18/220724

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2