IDEA运行Java项目,控制台日志样式问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA运行Java项目,控制台日志样式问题。相关的知识,希望对你有一定的参考价值。
下面两张截图 是两个项目在同一台电脑上,用同一个IntelliJ IDEA软件运行时,控制台打印的日志。可以看出他们有很大的不同。第一张图所展示项目的日志,没有颜色标识,且INFO 后不带数字;第二张图所展示项目的日志,有颜色标识,且INFO 后带数字;对齐处理得也很好。很方便阅读;让我觉得疑惑的是,两个项目运行在同一台电脑上,用同一个软件运行,为何会有不同的效果。我希望得到的日志样式是第二张图中的样式,请问,如何把设置才能把第一张图中的日志设置为我想要的样子?
第二个是使用的spring默认的log4j来打印的,第一个应该是你项目里有log4j(也许是logback等其他日志)的配置文件然后配置生效了。可以的话检查一下你的resources文件夹,截个图给我看下,里面是否有日志相关的配置文件追问
图一对应问题中的第一张图,图二对应问题中的第二张图
第一个项目中的配置文件中是否有日志的相关配置?另外看一下pom文件中是否引用了某种日志的依赖?先确认一下是是用来logback还是sl4j那些
追问
com.peach
component.logkit
0.0.1-SNAPSHOT
两个项目pom.xml中的与log相关的依赖,都只有这个,这好像是公司的自己搞的一个日志工具
IDEA运行Tomcat,控制台日志乱码
一、信息
IDEA:2019.1
Tomcat:9.0.24
二、问题描述
server中日志正常显示,但Tomcat Catalina Log日志乱码。
三、解决思路
既然出了乱码,那肯定是编码不统一,所以我将IDEA中设置编码的地方(包括IDEA的配置文件)全都设置成了UTF-8,结果不但问题没有解决,我的server和tomcat catalina log全部出现了乱码。
https://www.cnblogs.com/aligege/p/10550432.html,翻到了这篇博客,博主思路很正确,不应当只修改IDEA中的编码,还要修改Tomcat日志配置文件中的编码,让它们统一才行。
这里的默认值是GBKSS,修改成UTF-8,依旧乱码。改为GBK后,server的日志正常了,tomcat catalina log还是乱码。
应该是catalina的相关配置文件,网上查了好几篇博客都说修改这个文件,于是乎按照教程走,加上了-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8
if [ -z "$LOGGING_MANAGER" ]; then LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8" fi
依旧乱码,这里修改的是logging_manager的值,那这一行代码是什么意思呢?跳到catalina.sh文件的最上方,tomcat不愧是顶级开源项目,人家这注释写的可真是太香了。
# LOGGING_MANAGER (Optional) Override Tomcat‘s logging manager # Example (all one line) # LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
意思是覆盖tomcat的日志管理器记录,也就是说我们修改了日志管理器这里的编码,但问题并未解决,这时我注意到这行注释上方还有一段注释。
# LOGGING_CONFIG (Optional) Override Tomcat‘s logging config file # Example (all one line) # LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
意思是覆盖tomcat的日志配置文件,难道这里覆盖掉了?跳到文件下方代码。
# Set juli LogManager config file if it is present and an override has not been issued if [ -z "$LOGGING_CONFIG" ]; then if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties" else # Bugzilla 45585 LOGGING_CONFIG="-Dnop" fi fi
我们可以看到tomcat catalina log日志配置配置文件就是我们刚才修改过的logging.properties文件,仔细看了一下文件中的内容后,原来tomcat catalina log日志配置的代码就是下面这几行。
############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ 1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1catalina.org.apache.juli.AsyncFileHandler.directory = $catalina.base/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90 1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8 2localhost.org.apache.juli.AsyncFileHandler.level = FINE 2localhost.org.apache.juli.AsyncFileHandler.directory = $catalina.base/logs 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90 2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8 3manager.org.apache.juli.AsyncFileHandler.level = FINE 3manager.org.apache.juli.AsyncFileHandler.directory = $catalina.base/logs 3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 3manager.org.apache.juli.AsyncFileHandler.maxDays = 90 3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 4host-manager.org.apache.juli.AsyncFileHandler.directory = $catalina.base/logs 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90 4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
试着将这几行代码中的UTF-8全部改为GBK后,问题圆满解决。
以上是关于IDEA运行Java项目,控制台日志样式问题。的主要内容,如果未能解决你的问题,请参考以下文章