如何为Glassfish-4.1配置自定义访问日志格式(在v3.1.2.2中使用,在v4.1中忽略)

如何为Glassfish-4.1配置自定义访问日志格式(在v3.1.2.2中使用,在v4.1中忽略),glassfish,Glassfish,我正在将一些内部系统从Glassfish-3.1.2.2(在Java 1.7上)转换为Glassfish-4.1(在Java 1.8上)。我们需要自定义访问日志格式来捕获默认日志格式说明符中不存在的一些数据 Glassfish-4.1似乎忽略了domain.xml文件中“access log”元素中的格式说明符(以及所有其他自定义设置)。这些配置选项在Glassfish-3.1.2.2中完美地工作 具体地,在WorksFISHIS-3.1.2.2系统中,在“…/CONS/NET.XML”文件中考

我正在将一些内部系统从Glassfish-3.1.2.2(在Java 1.7上)转换为Glassfish-4.1(在Java 1.8上)。我们需要自定义访问日志格式来捕获默认日志格式说明符中不存在的一些数据

Glassfish-4.1似乎忽略了domain.xml文件中“access log”元素中的格式说明符(以及所有其他自定义设置)。这些配置选项在Glassfish-3.1.2.2中完美地工作

具体地,在WorksFISHIS-3.1.2.2系统中,在“…/CONS/NET.XML”文件中考虑以下内容。某些值已被编辑,但实际文本不相关

<configs>
  <config name="server-config">
    <http-service access-logging-enabled="true">
      <access-log buffer-size-bytes="128000" write-interval-seconds="1" format="'%client.name% %datetime% %request% %status% %response.length% %session.com.redacted.redacted.User% %header.user-agent% %header.X-REDACTED%'"></access-log>

)->配置->服务器配置->HTTP服务->访问日志->格式

我做了一些实验(都失败了)

  • 我也将格式字符串放入“默认配置”中。这与文档相反(对于GF-3,“默认配置”用作为新域创建新配置的模板,任何正在运行的域都不使用它)。正如预期的那样,此编辑对实际访问日志文件没有影响(服务重启后)

  • 我从管理web界面编辑了日志格式字符串。我附加了静态字符串“ABC123TEST”,保存了配置并重新启动了服务器。果然,文本“ABC123TEST”出现在domain.xml中的正确位置,但在写入访问日志文件时,它完全被忽略

  • 访问日志文件不正确的示例(为保密而编辑的某些数据):

    “1.2.3.4”NULL-AUTH-USER“09/Jun/2015:10:59:10-0600”GET/logoff-action.do HTTP/1.1“200 0

    正确/所需的访问日志示例:


    “1.2.3.4”“09/Jun/2015:11:00:01-0600”“获取/注销操作。do;jsessionid=0000000000000000000000000000 HTTP/1.1“200 0”redact-USER-NAME”“AwesomeUserAgentStr/1.0”“redact-X-HEADER-VALUE”
    我找到了这个文档。也许会有帮助?“Sun GlassFish Enterprise Server v3域文件格式参考”