LoginSignup
5
4

More than 5 years have passed since last update.

Node.jsのロガー log4jsでsyslogのAppenderを追加する

Posted at

はじめに

Node.jsのロギングツールのlog4jsはJavaのlog4jにちなんで名付けられたようです。たまたまlog4jsを使うアプリを触ったのですが、ロギングされた結果をsyslogに飛ばしたくなりました。
log4jではsyslogのAppenderを追加することができるのですが、log4jsはsyslogのAppenderがありません。

log4jsのsyslog Appender

log4jsからsyslogへログを流すsyslog Appenderはいくつかあるようです。今回はMITライセンス表記されていて使いやすそうなlog4j-syslog-appenderを利用しました。以下のコマンドでインストールします。

$npm install log4js-syslog-appender -save

log4jsの設定ファイルに以下の設定を行います。今回はnpmのページに記載のある設定を記載しました。このページではappenderが1つの設定になっていますが、appendersとリストで渡すことで、複数のAppenderを設定することができます。syslogで他のサーバにログを転送しつつ、ローカルのファイルに保存することもできます。

log4js.conf
"appenders": [
                 {
                 "type": "log4js-syslog-appender",
                 "tag": "YOUR LOG TAG",
                 "facility": "local0",
                 "hostname": "localhost",
                 "port": 514,
                 "transport": "UDP"
                  }
 ]

また、log4js-syslog-appenderはUDPの他にsocket(TCP?)での転送もできるようです。

上記設定後、localhostのsyslog.confまたはrsyslog.confの設定を変更しましょう。
localhostが転送先のサーバになっていれば転送先のサーバに設定します。
私は一度ローカルのrsyslogサーバに送り、ログを集約し、そこから転送先のサーバに転送するように設定し検証しました。

5
4
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
5
4