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相关的依赖,都只有这个,这好像是公司的自己搞的一个日志工具

参考技术A 很明显第二个项目用了外部log库,比如log4j 参考技术B Setting->Editor->General->Console,不要勾选Use soft...项即可。

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 Tomcats logging manager
#                   Example (all one line)
#                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

 

意思是覆盖tomcat的日志管理器记录,也就是说我们修改了日志管理器这里的编码,但问题并未解决,这时我注意到这行注释上方还有一段注释。

#   LOGGING_CONFIG  (Optional) Override Tomcats 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项目,控制台日志样式问题。的主要内容,如果未能解决你的问题,请参考以下文章

idea导入别人的项目运行成功,怎么查看系统

Idea中运行spark消除控制台的info日志输出的方法

Idea常用插件推荐

Idea常用插件推荐

Idea常用插件推荐

Idea常用插件推荐