我正在尝试使每个部署的日志记录工作。我在WEB-INF/
中有logging.properties
的战争档案,内容为:
ru.home.level=FINEST
在servlet中我做:
protected Logger log = Logger.getLogger("ru.home.Something");
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
log.log(Level.FINEST, "Hello");
resp.getWriter().write("<b>tralalala</b>");
log.log(Level.FINEST, "Bye");
}
根据部署期间的WildFly日志记录配置文档,它应该扫描并在适当的位置找到我的属性文件。但它似乎根本无法扫描。我做错了什么?(https://docs.jboss.org/author/display/WFLY9/Logging+配置#日志配置PerdeploymentLogging)还有:
/subsystem=logging:read-attribute(name=use-deployment-logging-config)
退货:
{
"outcome" => "success",
"result" => true
}
文档中似乎有错误。logging.properties
文件应位于WEB-INF/classes
目录中。
此外,logging.properties
文件的格式需要与JUL logging.properties
文件的格式略有不同。
示例:
loggers=ru.home
logger.level=INFO
logger.handlers=FILE
logger.ru.home.level=FINEST
handler.FILE=org.jboss.logmanager.handlers.SizeRotatingFileHandler
handler.FILE.level=ALL
handler.FILE.formatter=PATTERN
handler.FILE.properties=append,autoFlush,enabled,maxBackupIndex,rotateOnBoot,rotateSize,fileName
handler.FILE.append=true
handler.FILE.autoFlush=true
handler.FILE.enabled=true
handler.FILE.maxBackupIndex=10
handler.FILE.rotateOnBoot=false
handler.FILE.rotateSize=52428800
handler.FILE.fileName=${jboss.server.log.dir}/myapp.log
formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n
需要注意的一点是,每次部署日志记录不会从子系统继承任何配置。您需要在部署中完全配置日志记录。