springBoot啟動輸出三行日志控制臺自動停止操作
springBoot啟動輸出三行日志控制臺自動停止
在https://start.spring.io/(官網)快速創建的springBoot工程,導入到myeclipse中後,啟動後自動結束瞭。
pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.xiaof</groupId> <artifactId>springboot_day01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>springboot_day01</name> <description>springboot_day01 project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
註:此版本為spring-boot 2.2.2。
啟動類StartApplication.java:
package net.xiaof.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StartApplication { public static void main(String[] args) { SpringApplication.run(StartApplication.class, args); System.out.println("==================================================================="); System.out.println("(◕ˇ∀ˇ◕) springboot started "); System.out.println("==================================================================="); } }
啟動console如下:
. ____ _ __ _ _
/\\ / ___’_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | ‘_ | ‘_| | ‘_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
‘ |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.1.RELEASE)2019-12-17 22:55:44.874 INFO 13248 — [ main] net.xiaof.boot.StartApplication : Starting StartApplication on XIAOHU-WIN10 with PID 13248 (D:\MyEclipse_2017_workspaces\springboot_day01\target\classes started by XIAO in D:\MyEclipse_2017_workspaces\springboot_day01)
2019-12-17 22:55:44.876 INFO 13248 — [ main] net.xiaof.boot.StartApplication : No active profile set, falling back to default profiles: default
2019-12-17 22:55:47.117 INFO 13248 — [ main] net.xiaof.boot.StartApplication : Started StartApplication in 2.479 seconds (JVM running for 2.869)
然後Console自動停止瞭。
解決方法:
建議降低版本,更換為spring-boot 2.0.1。
SpringBoot啟動項目後自動關閉,日志打印”Stopping Service”
問題描述:
Java -jar jar包,啟動springboot項目,在還沒啟動完成,日志打印出“Stopping Service”,查看jar進程存在,但訪問服務不通,日志無報錯。
問題排查:
嘗試瞭各種方式,重新打包,修改tomcat為外部tomcat,修改端口等等都不起作用,依然存在問題。
後來猜測報錯瞭,隻是因為日志沒有打印出來,又去修改日志級別及其他配置,發現依然看不到問題。
後來嘗試修改springboot的啟動main方法,
原(無報錯日志):
public static void main(String[] args) { SpringApplication.run(TestApp.class, args); }
修改後(無報錯日志):
public static void main(String[] args) { Try{ SpringApplication.run(TestApp.class, args); }catch(Exception e){ e.printStackTrace(); } }
最終修改(有報錯日志):
public static void main(String[] args) { Try{ SpringApplication.run(TestApp.class, args); }catch(Exception e){ LOGGER.error(“啟動報錯”,e); } }
問題分析:
SpringBoot 啟動main方法要自己tryCatch一下,打印日志,建議最好使用Logger去輸出日志,盡量不要輸出到控制臺,因為很多公司日志配置不讓輸出到控制臺,故有問題的時候也不會有日志。
能看到報錯日志,那麼問題排查就很簡單瞭。
(最終是因為MQ配置有問題導致啟動報錯)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Springboot基礎學習之初識SpringBoot
- Springboot入門案例及部署項目的詳細過程
- SpringBoot詳細講解如何創建及刷新Spring容器bean
- SpringBoot入門編寫第一個程序Helloworld
- 快速搭建一個SpringBoot項目(純小白搭建教程)