使用ESAPI记录器生成的日志

时间:2019-11-19 07:08:30

标签: logging log4j esapi

我在应用程序中使用ESAPI记录器。 记录器logger = ESAPI.getLogger(ABC.class)

在ABC.java类中,我们使用INFO级别来打印日志。根据定义,我们知道Info接受:

两个参数: info(Logger.EventType类型,java.lang.String消息)

三个参数: info(Logger.EventType类型,java.lang.String消息,java.lang.Throwable throwable)

我在应用程序中提供了两个参数: logger.info(EVENT_TYPE,msg);

日志的生成格式为:

[事件成功匿名:null @ unknown-> /com.sample.package.ABC][msg]

我想要这种格式的日志:

[事件成功] [消息]

请告诉我如何删除由于EVENT_TYPE参数而导致打印的其他详细信息。

2 个答案:

答案 0 :(得分:0)

不重写该库的那部分是不可能的。目前尚无配置控件。

将PR提交给https://www.github.com/ESAPI/esapi-java-legacy

作为项目联合负责人,我不会自己招待自己。

答案 1 :(得分:0)

我们遇到了同样的问题,正在研究本周将在GitHub上提交的PR。

我们希望尽快对此发表反馈意见。

我们计划:

  • 添加两个属性:LogUserInfo和LogAppInfo(默认为true)
  • 使用这些信息来决定是否要添加当前信息

记录器输出将为

    LogUserInfo=true and LogAppInfo=true: [EVENT SUCCESS Anonymus:null@unknown -> 
    /com.sample.package.ABC][msg]
    LogUserInfo=true and LogAppInfo=false: [EVENT SUCCESS Anonymus:null@unknown][msg]
    LogUserInfo=false and LogAppInfo=true: [EVENT SUCCESS /com.sample.package.ABC][msg]
    LogUserInfo=false and LogAppInfo=false: [EVENT SUCCESS][msg]

https://github.com/ESAPI/esapi-java-legacy/issues/527 https://github.com/ESAPI/esapi-java-legacy/pull/529

我们知道可以使用某些字符串格式模板和/或使用MDC进一步改善这一点,但现在我们将尝试使PR尽可能简单,而不会引起潜在的安全问题或功能中断。