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
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
  <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
    <syslogHost>localhost</syslogHost>
    <port>514</port>
    <facility>LOCAL3</facility>
    <suffixPattern>%date - [%level] - [%thread] %logger %msg</suffixPattern>
  </appender>
  <logger name="play" level="INFO" />
  <logger name="application" level="INFO" />
  <root level="INFO">
    <appender-ref ref="SYSLOG" />
  </root>
</configuration>

違う名前にしたい場合は起動オプション-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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值