接管所有System.out.println转成Logger输出日志
新建日志类:
/*** @Description: 用logback接管System.out和System.err* @Author: thp-mac* @Date: 2024/6/14* @Version: 1.0**/
public class MyLog {private static final Logger logger = LoggerFactory.getLogger(MyLog.class);/*** 把System.out和System.err替换为新的PrintStream,用logger.info代替System.out.print和System.err.print* @param SysPrintStream  可以是System.out和System.err* @return  返回新的PrintStream*/public static PrintStream createMyPrintStreamInfo(final PrintStream SysPrintStream) {PrintStream myStream= new PrintStream(SysPrintStream) {public void print(final String string) {logger.info(string);}};return myStream;}public static PrintStream createMyPrintStreamError(final PrintStream SysPrintStream) {PrintStream myStream= new PrintStream(SysPrintStream) {public void print(final String string) {logger.error(string);}};System.out.println();return myStream;}/*** 在程序启动时运行这个函数,让logback接管Sytem.out和System.err*/public static void init() {System.setOut(createMyPrintStreamInfo(System.out)); //替换System.outSystem.setErr(createMyPrintStreamError(System.err)); //替换System.err}}
在启动main中调用他:
@EnableScheduling
@EnableSwagger2
@SpringBootApplication
public class MainApplication {public static void main(String[] args) {MyLog.init();//程序启动时运行这个方法,主要就是这一句SpringApplication.run(MainApplication.class, args);}}
