springBoot简单记录日志
阅读原文时间:2023年07月08日阅读:2

记录日志的几种方法

在配置文件中添加以下配置:

logging:
file:
name: "./log/xxx.log"
pattern:
file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n"

项目打包成jar后会在同级目录生成log/xxx.log日志文件

如果不在springboot项目中配置日志文件,则可以手动使用Linux命令生成日志输出

以下命令只是简单启动jar包命令,ctrl+c后项目会停掉

java -jar xxx.jar

以下命令是后台启动jar包命令,ctrl+c后项目不会停,但是用户断开连接后项目会停止

java -jar xxx.jar &

以下命令是后台启动jar包命令,ctrl+c后项目会停止,忽略输入并把输出追加到"nohup.out"

nohup java -jar demo.jar

nohup命令即no hang up缩写,不挂断的意思,即断开连接项目不会停止,但是ctrl+c后会停止,所以通常与&命令一起使用如下:

nohup java -jar xxx.jar &

使用nohup java -jar xxx.jar &命令后,不管ctrl+c还是断开连接项目都会照常运行,并且会将日志信息输出到nohup.out文件,现在我们可以给nohup.out重定向输出一下,如下命令的意思是:

2>&1是将标准错误2重定向到标准输出&1,标准输出&1再被重定向输入到sys.log文件中,此种方法是最常用的Linux日志持久化方法。

nohup java -jar xxx.jar > ./sys.log 2>&1 &

grep为管道符号,如下命令的意思是:

查看java进程,并且过滤掉grep管道命令(因为正常执行ps -ef|grep java会过滤不掉grep命令如下图所示),

过滤掉grep后如下图所示,

然后取进程号,如下图所示,

将参数传递给kill -9命令,直接一行命令关闭进程。

ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9

最后可以将

nohup java -jar xxx.jar > ./sys.log 2>&1 &

ps -ef | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9

分别写入文件起名为start.sh和stop.sh,直接./start.sh ./stop.sh启动和停止jar包。