我们在构建中使用混淆jar,我们使用Log4j2进行日志记录。但是,我们正在记录为字符串的信息性日志正在正确记录。但是,异常情况下的日志,即异常跟踪或exceprion.getmessage()不会打印详细信息。这也是模糊的形式,即它不可读。
有任何建议可以克服这个问题吗?
答案 0 :(得分:0)
这听起来像预期的行为...... 在运行时,类名和包名称被加扰,因此堆栈跟踪可能看起来不漂亮。
你的混淆器没有去混淆功能吗?我想它会在进行加扰时生成带有元数据(明文名称和加扰名称之间的映射)的文件。
如果您的用户遇到需要支持的问题,他们会向您发送他们的(加扰的)堆栈跟踪。您可以使用该元数据文件解密该堆栈跟踪并使其再次可读。 (您应该为您发布的每个版本的库保留一个。)这就是您处理支持问题的方法。
答案 1 :(得分:0)
您可能正在初始化您的记录器:
Logger logger = LogManager.getLogger(MyClass.class.getName());
在开发过程中重复命名/重构代码时,这种方法非常有用。但是一旦你对你的代码感到满意,你应该用这样的常量名称替换该行:
Logger logger = LogManager.getLogger("my.package.MyClass");
这样,类名 - 即记录器名称 - 不会被混淆。