systemd服务单元文件 /etc/systemd/system/chat-java-pre.service

[Unit]
Description=chat java pre Application  # 服务的描述信息
After=network-online.target  # 在网络在线时启动服务

[Service]
WorkingDirectory=/usr/local/chat-java-pre  # 应用程序的工作目录
ExecStart=/usr/local/jdk8/bin/java -jar /usr/local/chat-java-pre/gpt-1.0-SNAPSHOT.jar --spring.profiles.active=pre -Xms1g -Xmx1g  # 启动命令
ExecReload=/bin/kill -s HUP $MAINPID  # 重载命令
ExecStop=/bin/kill -s QUIT $MAINPID  # 停止命令
PrivateTmp=true  # 使用私有临时文件系统
Type=simple  # 进程类型

User=root  # 运行服务的用户
Group=root  # 运行服务的组
SyslogIdentifier=chat-java-pre  # 系统日志标识符

[Install]
WantedBy=multi-user.target  # 安装到multi-user.target目标中

rsyslog配置文件 /etc/rsyslog.d/chat-java.conf

$template myformat2,"%timegenerated:::date-year%-%timegenerated:::date-month%-%timegenerated:::date-day% %timegenerated:::date-hour%:%timegenerated:::date-minute%:%timegenerated:::date-second%:%timegenerated:::date-subsecond% %hostname% %syslogtag%%msg%\n"
# 定义日志格式,包括时间、主机名、系统日志标识符和日志消息

$template myformat3, "%msg%\n"
# 定义日志输出格式,只包括日志消息

if ($programname == 'chat-java-pre') then {
   action(type="omfile" file="/usr/local/chat-java-pre/logs/gpt.log" template="myformat3")
   stop
}

这个文件指定了日志格式和输出位置。它将chat-java-pre应用程序的日志输出到/usr/local/chat-java-pre/logs/gpt.log文件中。

最后,我们需要重新加载rsyslog配置文件和启动chat-java-pre服务。在终端中输入以下命令:

systemctl restart rsyslog
systemctl start chat-java-pre

现在,chat-java-pre应用程序的日志将被记录到/usr/local/chat-java-pre/logs/gpt.log文件中。