当前位置: 首页 > news >正文

通过配置JVM参数解决生成日志存在乱码问题

项目上生产环境时出现一个问题,生成的日志文件存在乱码,服务器编码为 LANG=zh_US.UTF-8,按理说中文不会存在乱码,这里存在一个问题,就是在SIT等其他环境我们使用的连接工具为Xshell,但生产环境是通过4A平台提供的SecureCRT工具进行连接,SecureCRT工具的编码默认不是UTF-8,并且无法永久修改为UTF-8,所以每次登录上远程连接首先要修改SecureCRT工具的编码,修改完编码为UTF-8之后再执行启动脚本,生成日志依旧存在乱码。判断原因应该是编码字符集与解码字符集不一致,采用脚本里面强制编码的方式。

原先脚本中配置的JVM参数:

JVM_OPTS="$JAVA_OPTS -Denv=pro -Dpro_meta=$APOLLO_ADDR -Dname=$APP_NAME -Dlogging.path=$LOBGACK_PATH -Xms3072M -Xmx3072M"

在JVM参数中增加编码配置之后,JVM参数如下:

JVM_OPTS="$JAVA_OPTS -Denv=pro -Dpro_meta=$APOLLO_ADDR -Dname=$APP_NAME -Dlogging.path=$LOBGACK_PATH -Xms3072M -Xmx3072M -Dfile.encoding=utf-8 -Dsun.jnu.encoding=utf-8"

 配置完重启生效。

 

 

文件编码和解码字符集解释

计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码";
反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密。在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码。

日志文件的解码字符集,可通过下载日志文件到本地,然后通过notepad打开查看。

日志文件的编码字符集。可通过下面的Java代码获取Java虚拟机使用的字符集。

String charsetName = Charset.defaultCharset().name();

通过比对解码和编码字符集,查看是否一致。

 

转载于:https://www.cnblogs.com/zjfjava/p/10748044.html

相关文章:

  • unity Graphics的一些方法介绍
  • CodeForces 1151B Dima and a Bad XOR
  • unity Stopwatch
  • unity 烘焙参数的设置
  • JS 设计模式五 -- 命令模式
  • CommandBuffer实现Distort屏幕扭曲效果
  • Anti-aliasing and Continuity with Trapezoidal Shadow Maps
  • tarjan----强连通分量
  • Trapezoidal Shadow Maps (TSM) - Recipe
  • 十天冲刺-03
  • Perspective Shadow Maps: Care and Feeding
  • 网络基础 08_NAT
  • C# AttributeUsage
  • vue组件之间的传值方式
  • C# Attribute
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angular 2 DI - IoC DI - 1
  • HTML中设置input等文本框为不可操作
  • Java精华积累:初学者都应该搞懂的问题
  • js 实现textarea输入字数提示
  • Linux中的硬链接与软链接
  • Python实现BT种子转化为磁力链接【实战】
  • swift基础之_对象 实例方法 对象方法。
  • 聚簇索引和非聚簇索引
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 异常机制详解
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 带你开发类似Pokemon Go的AR游戏
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (四) Graphivz 颜色选择
  • (四)模仿学习-完成后台管理页面查询
  • (转)【Hibernate总结系列】使用举例
  • (转)EXC_BREAKPOINT僵尸错误
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Core中的去虚
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .Net的DataSet直接与SQL2005交互
  • .NET的微型Web框架 Nancy
  • .NET序列化 serializable,反序列化
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @Builder用法
  • @TableLogic注解说明,以及对增删改查的影响
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [Python进阶] 正则表达式介绍
  • [Swift学习] 访问控制 Access Control, private、public、filePrivate等修饰符
  • [Uniapp]携带参数跳转界面(两种方法)
  • [WebUI Forge]ForgeUI的安装与使用 | 相比较于Auto1111 webui 6G显存速度提升60-75%
  • [本地跑项目总是要权限校验输密码]Error: EACCES: permission denied