打包与运行
windows打包与运行
windows打包与运行,linux程序运行
服务启动失败:没有主清单属性【没有打包插件】
mvn package
maven打包的时候会执行测试的流程,运行test里面的代码,会导致数据有一些变化;
打包插件:打出一个可以独立运行的jar包;
- 所有程序放在classes,所有依赖放在lib,再打一个org工具包,用于独立运行boot工程,里面提供boot的类加载器
- 支持运行的核心是MANIFEST.MF文件,里面包含
- 主启动类Main-Class: org.springframework.boot.loader.JarLauncher【jar启动器】
- 主启动类找启动类Start-Class:com.lmcool.xxxApplication
Windows产看端口占用
netstat -ano # 查询端口
netstat -ano | findstr "端口号" # 查询端指定口
tasklist | findstr "进程PID号" # 根据进程PID查询进程名称
taskkill -F -PID "进程PID号" # 根据PID杀死任务
taskkill -f -t -im "进程名称" # 根据进程名称杀死任务
Linux运行SpringBoot
centOS7
cd /usr/local
mkdir app
cd app
# 传入jar包,注意java版本对应
java -version
java -jar app.jar
后台启动
nohub java -jar app.jar > server.log 2>&1 &
# 查看pid
ps -ef | grep "java-jar"
kill -9 pid
查看日志
cd app
cat server.log
日志
日志基础
作用
- 编程期调试代码
- 运营期记录信息
- 记录日常运营重要信息(峰值流量、平均响应时长···.··)
- 记录应用报错信息 (错误堆栈)
- 记录运维过程数据(扩容、宕机、报警......)
级别:tarce(堆栈信息)debug(调试用),info(运行信息),warn(警告类信息),error(报错信息),fatal(灾难)
创建记录日志的的对象
方式1
@RestController
@RequestMapping("/books")
public class BookController {
private static final Logger log = LoggerFactory.getLogger(Bookcontroller.class);
@GetMapping
public string getById(){
System.out.println("springboot is running...2");
Log.debug("debug...");
log.info("info...");
Log.warn("warn...");
log.error("error...");
return "springboot is running...2";
}
}
方式2:创建一个类,让其他的类继承他
public class BaseClass{
private Class clazz;
public static Logger log;
public BaseClass(){
clazz = this.getClass();
log = LoggerFactory.getLogger(clazz);
}
}
方式3:lombok
@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping
public string getById(){
System.out.println("springboot is running...2");
Log.debug("debug...");
log.info("info...");
Log.warn("warn...");
log.error("error...");
return "springboot is running...2";
}
}
日志配置
配置方式1
启动的时候加--debug
配置方式2
debug: true
配置方式3
# 推荐
logging:
# 设置分组
group:
ebank: com.lmcool.controller,com.lmcool.dao,com.lmcool.service
level:
root: debug
# 设置某个包
com.lmcool.controller: info
# 对分组设置日志级别
ebank: warn
日志输出格式控制
时间 级别 pid 所属线程 所属类/接口名 日志信息
PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除
2021-11-02 12:25:39.392 INFO 2336 --- [ main] com.itheima.springboot1@LogApplication : starting Springboot10LogApplication using Java 1.8.0 172 or
2021-11-02 12:25:39.395 INFO 2336 --- [ main] com.itheima.springboot1eLogApplication : No active profile set,falling back to default profiles: de
...
设置日志模版格式与文件记录日志
logging:
pattern:
console: "%d - %m%n" # 日期 消息 换行
时间 彩色(级别5位) pid不可被重写 线程号16位 %类名(-40 左对齐 .40 内容截取){青色} : 日志信息 : 换行
文件记录日志
日志名:
%i
是第几个
logging:
pattern:
console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"
file:
name: server.log
logback:
rollingpolicy:
max-file-size: 10mb
file-name-pattern: server.%d{yyyy0MM-dd}.%i.log
标签:...,SpringBoot,运维,jar,笔记,debug,日志,com,log
From: https://www.cnblogs.com/lm02/p/18108111