1、部署
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
1、Windows命令
2、Linux命令
#查询端口使用情况
netstat -anp | grep 7070
kill -9 527
#后台启动
nohup java -jar .....jar > server.log 2>&1 &
2、日志
日志其实就是记录程序日常运行的信息,主要作用如下:
-
编程期调试代码
-
运营期记录信息
-
记录日常运营重要信息(峰值流量、平均响应时长……)
-
记录应用报错信息(错误堆栈)
-
记录运维过程数据(扩容、宕机、报警……)
1、代码中使用日志工具记录日志
@RestController
@RequestMapping("/books")
public class BookController extends BaseClass{
private static final Logger log = LoggerFactory.getLogger(BookController.class);
@GetMapping
public String getById(){
log.debug("debug...");
log.info("info...");
log.warn("warn...");
log.error("error...");
return "springboot is running...2";
}
}
日志设置好以后可以根据设置选择哪些参与记录。这里是根据日志的级别来设置的。日志的级别分为6种,分别是:
-
TRACE:运行堆栈信息,使用率低
-
DEBUG:程序员调试代码使用
-
INFO:记录运维过程数据
-
WARN:记录运维过程报警数据
-
ERROR:记录错误堆栈信息
-
FATAL:灾难信息,合并计入ERROR
一般情况下,开发时候使用DEBUG,上线后使用INFO,运维信息记录使用WARN即可。下面就设置一下日志级别:
# 开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true
更细粒度:
# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
level:
root: debug
设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别
logging:
# 设置日志组
group:
# 自定义组名,设置当前组中所包含的包
ebank: com.itheima.controller
level:
root: warn
# 为对应组设置日志级别
ebank: debug
# 为对包设置日志级别
com.itheima.controller: debug
2、优化日志对象创建代码
public class BaseController {
private Class clazz;
public Logger log;
public BaseController(){
clazz = this.getClass();
log = LoggerFactory.getLogger(clazz);
}
}
@RestController
@RequestMapping("/books")
public class BookController extends BaseClass{
}
也可以导入lombok后使用注解@Sel4j搞定,日志对象名为log
@Slf4j //这个注解替代了下面那一行
@RestController
@RequestMapping("/books")
public class BookController extends BaseClass{
}
3、日志输出格式控制
- %d:日期
- %m:消息
- %n:换行
logging:
pattern:
console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"
- PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
- 所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除
4、日志文件
logging:
file:
name: server.log
限制每个日志文件的大小:
logging:
logback:
rollingpolicy:
max-file-size: 3KB
file-name-pattern: server.%d{yyyy-MM-dd}.%i.log
容量到达3KB以后就转存信息到第二个文件中。 文件命名规则中的%d标识日期,%i是一个递增变量,用于区分日志文件。