需要澄清的几点:
- JBoss 中的 logging.properties 仅在日志子系统(稍后将提供更多信息)启动并运行之前存在,在这种情况下子系统将接管
- 您为 log4j.properties 引用的位置似乎很奇怪,因为您引用的是 module/...,而这应该主要是为模块保留的路径,而不是您的应用程序本身(可能与独立与域有关,因为我更熟悉后者,但这值得怀疑。
因此假设您的应用程序 log4j 配置未考虑在内:
日志管理是通过日志子系统完成的
例如通过 CLI 界面管理它,因为您专注于终端窗口输出:
[standalone@localhost:9999 /] /subsystem=logging/console-handler=CONSOLE:read-resource(recursive=true)
{
"outcome" => "success",
"result" => {
"autoflush" => true,
"enabled" => true,
"encoding" => undefined,
"filter" => undefined,
"filter-spec" => undefined,
"formatter" => "%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n",
"level" => "INFO",
"name" => "CONSOLE",
"named-formatter" => "COLOR-PATTERN",
"target" => "System.out"
}
}
所以如果你在那里更新关卡:
[standalone@localhost:9999 /] /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=WARN)
控制台的级别将设置为警告。
更多关于更精细配置的信息:
JBoss 中的日志记录机制遵循“分层”方法,您可以定义 loggers(始终有一个默认的 ROOT 记录器)来定义每个类别的日志记录行为。
记录器根据类别和级别过滤消息,并根据它们的配置将它们发送到 handlers,它们可以使用与链接到 ROOT 记录器的处理程序相同的处理程序,或链接到特定的处理程序(s) 如果愿意。
您通常至少有 CONSOLE 处理程序和 FILE 处理程序,但如果需要,可以添加其他处理程序
默认独立安装中的记录器列表:
[standalone@localhost:9999 /] /subsystem=logging:read-children-names(child-type=logger)
{
"outcome" => "success",
"result" => [
"com.arjuna",
"jacorb",
"jacorb.config",
"org.apache.tomcat.util.modeler",
"org.jboss.as.config",
"sun.rmi"
]
}
以org.jboss.as.config为例:
[standalone@localhost:9999 /] /subsystem=logging/logger=org.jboss.as.config:read-resource()
{
"outcome" => "success",
"result" => {
"category" => "org.jboss.as.config",
"filter" => undefined,
"filter-spec" => undefined,
"handlers" => undefined,
"level" => "DEBUG",
"use-parent-handlers" => true
}
}
这意味着对于 org.jboss.as.config,日志级别设置为 DEBUG,而 use-parents-handlers 意味着在此记录器的父级上定义的处理程序也将用于此记录器。
所以对于这个类别,所有 DEBUG 及以上级别的消息都会发送到处理程序,处理程序将应用它们的过滤器来决定是否输出消息。
在我们的例子中,我们将 CONSOLE 处理程序级别设置为 WARN,因此所有低于 WARN 的消息都将被过滤掉。
希望这能回答您的问题,或者至少为您提供一些在尝试解决问题时需要考虑的要点。