Tomcat 访问log4j HTML 日志文件中文字符乱码问题处理

5 篇文章 0 订阅
4 篇文章 0 订阅

在 上篇 https://blog.csdn.net/kangguang/article/details/104584279  中 

错误级别等日志文件输出格式为:html

log4j.appender.E.layout = org.apache.log4j.HTMLLayout

log4j.appender.E.layout.Title =错误日志

 在生成的文件目录中,直接打开 里面的中文字符显示没有问题的,但是把html文件放入到Tomcat 中进行访问到时候中文字符 就显示成乱码了:

问题分析:

1.考虑是Tomcat 没有UTF-8  ,在tomcat 安装目录 conf 文件下server.xml

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

改为:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

  但是依然没有解决问题

2.更改bin文件夹下 catalina.sh 关于 UTF-8的设置,依然没有解决

3.细看了一下Tomcat 文档和 配置文件 发现 Tomcat8 默认就已经支持了 UTF-8  ,最后怀疑是log4j生成html 文件有问题

    用工具打开error.html  zai <head>中加入

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>错误日志</title>

   放入到Tomcat 中 再次访问,乱码问题解决了,但是项目运行中并没有自动加入 上面到更改,以后还会出现这样到问题,而且  

   日志信息显示的并不友好,考虑是不是可以自定义一下html页面的显示内容呢,idea中打开 HTMLLayout文件

有这个方法
  public String getContentType() {
        return "text/html";
    }
  但是并没有定义contentType属性和set方法

进入到getHeader方法中 发现 没有 关于 content="text/html; 的相关设置

综合考虑编写一个HTMLLayout的子类重写 HTMLLayout

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值