spring boot logback.xml 文件 配置出力到linux 下的系统log

系からPlay frameworkのロギングがlog4jではなくlogbackになっています。

http://logback.qos.ch/

AppenderとLoggerの設定をおこなうという設定方法の概念はlog4jとあまりかわらないのでlog4jを触ったことがあればすんなり受け入れられると思います。

Appenderは下記URLで標準のものをチェックできます。
よく使うのはFileやSyslogでしょうか。

http://logback.qos.ch/manual/appenders.html

playで設定するにはconf/logger.xmlを作成します。
LOCAL3で出力する場合は下記のように書きます。

conf/logger.xml


   conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
   name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
    localhost
    514
    LOCAL3
    %date - [%level] - [%thread] %logger %msg
  
   name="play" level="INFO" />
   name="application" level="INFO" />
   level="INFO">
     ref="SYSLOG" />
  

違う名前にしたい場合は起動オプション-Dlogger.xxxxを指定します。
xxxxの部分にはresource, file, urlを利用できます。

command
./target/universal/stage/bin/[yourapp] -Dlogger.resource=logger-prod.xml

SyslogAppenderはTCPでログを転送します。syslogサーバで受け取る側がplay起動時にTCPで待ち受けていて接続可能である必要があります。

rsyslogの場合は/etc/rsyslog.confに下記の設定を追加してあらかじめrsyslogを再起動しておく必要があります。

/etc/rsyslog.conf追記TCP+UDP待ち受けとlocal3出力
$ModLoad imudp
$UDPServerRun 514
$InputTCPServerRun 514

local3.*     /var/log/myapp.log

これでログローテーションを設定、Fluentdでソースを上記ファイルにして運用すると楽です。
Fluentd用のAppenderなどあればその方が効率がいいのかもしれませんがrsyslogの実績を考えると当面この方が安心です。

如果这个方法不行,可以看我的另一篇blog:java 出力log到linux下面的系统log

你可能感兴趣的:(spring,boot)