centos Tomcat 9.如何将 Catalina 传递给服务日志(journalctl)

hxzsmxv2  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(134)

我在Centos机器上使用Tomcat 9,Tomcat应用程序的日志在/opt/tomcat/logs. catalina. out中生成,有没有办法将这些日志传递给服务日志(journalctl -u MyTomcat.service -f)?
我从/etc/systemd/system.MyTomcat.service触发我的服务
(startup.sh启动catalina.sh)
我可以在 Catalina .out中查看日志,但journcalctl只有这些行,而catalina包含我的应用程序的所有日志记录

Feb 28 08:14:39 192.168.1.2 systemd[1]: Starting My Tomcat Service... 
 Feb 28 08:14:39 192.168.1.2systemd[1]:  Started My Tomcat Service. 
 Feb 28 08:14:39 192.168.1.2tomcat[23222]: Tomcat started.
ecfsfe2w

ecfsfe2w1#

你好,我找到了一个解决方案的职位。这里是我做了什么,如果有其他人正在寻找它。

1. /etc/rsyslog.conf
   #add imfile module
   $ModLoad imfile
   $IncludeConfig /etc/rsyslog.d/*.conf
   ...
   *.* @@<SYSLOG_SERVER ADDRESS>:<SYSLOG SERVER PORT>

2. /etc/rsyslog.d/catalina_ruleset.conf
   template(
     name = "my_template"
     type = "string"
     string = "<%PRI%>%timegenerated% %HOSTNAME% %syslogtag%: %msg%"
   )
   input(
     type="imfile"
     File="<catalina.out location>"
     Tag="MyTag"
     PersistStateInterval="1"
     reopenOnTruncate="on"
     freshStartTail="on"
     ruleset="My_ruleset"
   )
  ruleset(name="My_ruleset") {
     action(
         type="omfwd"
         template=""my_template""
         queue.saveonshutdown="on"
         action.resumeRetryCount="-1"
         Target="<SYSLOG_SERVER ADDRESS>"
         Port="<SYSLOG SERVER PORT>"
         Protocol="tcp"
       )
     }

相关问题