SpringBoot运维学习笔记

打包与运行

windows打包与运行

windows打包与运行,linux程序运行

服务启动失败:没有主清单属性【没有打包插件】

打包插件的作用:https://www.bilibili.com/video/BV15b4y1a7yG?p=55

mvn package

maven打包的时候会执行测试的流程,运行test里面的代码,会导致数据有一些变化;

打包插件:打出一个可以独立运行的jar包;

  1. 所有程序放在classes,所有依赖放在lib,再打一个org工具包,用于独立运行boot工程,里面提供boot的类加载器
  2. 支持运行的核心是MANIFEST.MF文件,里面包含
  3. 主启动类Main-Class: org.springframework.boot.loader.JarLauncher【jar启动器】
  4. 主启动类找启动类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
posted @ 2024-04-01 12:07  燕子去了  阅读(4)  评论(0编辑  收藏  举报

Powered by .NET 8.0 on Kubernetes

我会翻山越岭,到每一个我想去的地方

...