最近用shell脚本启动jar包发现原本的是这种
startup(){ nohup java -jar $args "/root/paiyidai/lib/${app}" & tail -f nohup.out }
但这样对于我们现有的项目会有一个问题就是nohup.out文件会越来越大,查找起来非常不方便,因为日志输出比较多,但是对于我们这个项目来说,这些日志又是有用的,于是我就改成了这种
startup(){ nohup java -jar $args "/root/paiyidai/lib/${app}" > /dev/null 2>&1 & sleep 6 ps -ef | grep java }
这样的话不仅可以查看程序是否启动成功直接不让器输出到nohup.out里了 ,这时候只要解决日志的文件问题就行了这里用了logbook的配置文件里面配置了,500M分一个文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 second" debug="false">
<property name="basedir" value="/root/paiyidai/logs"/>
<!-- 负责写日志,控制台日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 一是把日志信息转换成字节数组,二是把字节数组写入到输出流 -->
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 文件日志 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
<appender name="LogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basedir}/paiyidai.log</file>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${basedir}/paiyidai-%d{yyyy-MM-dd}.%i</fileNamePattern>
<maxHistory>15</maxHistory>
<maxFileSize>500MB</maxFileSize>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender >
<!--
- 根logger
- level:设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
- 默认是DEBUG。
-appender-ref:可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger
-->
<logger name="org.springframework" level="info"/>
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="LogFile"/>
</root>
</configuration>
这样只需要查看这里的日志文件就行了,然后再配合着一个检测磁盘文件是超90后删除超过二天的日志就完美的解决了这个问题