Linux 系统下tail -f catalina.out 查看日志,中文是问号或者乱码的解决办法

1、乱码:

Linux 系统下tail -f catalina.out 查看日志,中文是问号或者乱码的解决办法日志中 'detailMsg' 的值是问号。

2、解决方法:

(1)找到项目部署容器tomcat下的bin目录里面的 catalina.sh 文件;

 

Linux 系统下tail -f catalina.out 查看日志,中文是问号或者乱码的解决办法

(2)然后搜索文件中的关键字 'LOGGING_MANAGER',找到

if [ -z "$LOGGING_MANAGER" ],然后作如下修改:

if [ -z "$LOGGING_MANAGER" ]; then

LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager "

fi

改为:

if [ -z "$LOGGING_MANAGER" ]; then

JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"

else

JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER -Dfile.encoding=UTF-8-Dsun.jnu.encoding=UTF-8"

fi

 (3)重启项目,查看结果:

Linux 系统下tail -f catalina.out 查看日志,中文是问号或者乱码的解决办法

中文可以正常显示出来了!

=====================================================================================

如果你是 rm -rf 先删除catalina.sh 文件,然后再 rz 导入的话,重启过程中可能会遇到这个问题 :

Cannot find ./catalina.sh The file is absent or does not have execute permission This file is needed to run this program

解决方法是:

在 tomcat 的 bin 目录下 执行命令:chmod +x *.sh
然后执行命令: sh catalina.sh

接下去就可以 ./shutdown.sh 和 ./startup.sh 关闭和启动项目了。