打包與執行
windows打包與執行
windows打包與執行,linux程式執行
服務啟動失敗:沒有主清單屬性【沒有打包外掛】
打包外掛的作用:https://www.bilibili.com/video/BV15b4y1a7yG?p=55
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