Logging 如何判断JBOSS在我的WAR文件中使用了什么日志文件?
我正在使用JBoss7。 我在jboss/standalone/deployment中部署了一个WAR文件。使用./standalone.sh运行,它将大量日志信息打印到终端窗口 我试图调整日志属性,但没有成功。我曾尝试在modules/com/company/warname目录中编辑log4j.properties文件,但没有任何效果 我试图通过将日志记录级别提高到错误来修改jboss/standalone/configuration中的logging.properties文件,但这似乎也没有起到任何作用。(我每次都重新启动jboss)。我的日志中仍然充斥着信息和警告级别的警报 在终端的最顶端,在“jboss引导环境”打印出来之后,我确实看到了下面一行:Logging 如何判断JBOSS在我的WAR文件中使用了什么日志文件?,logging,jboss,log4j,Logging,Jboss,Log4j,我正在使用JBoss7。 我在jboss/standalone/deployment中部署了一个WAR文件。使用./standalone.sh运行,它将大量日志信息打印到终端窗口 我试图调整日志属性,但没有成功。我曾尝试在modules/com/company/warname目录中编辑log4j.properties文件,但没有任何效果 我试图通过将日志记录级别提高到错误来修改jboss/standalone/configuration中的logging.properties文件,但这似乎也没有
log4j: Default initialization of overridden by log4j.defaultInitOverrideproperty.
默认初始化。。。什么 需要澄清的几点:
- JBoss中的logging.properties仅在日志子系统(稍后将提供更多信息)启动并运行之前存在,在这种情况下,子系统将接管日志子系统
- 您所指的log4j.properties的位置似乎很奇怪,因为您所指的是模块/…,而这应该主要是为模块保留的路径,而不是您的应用程序本身(可能与standalone vs domain有关,因为我对后者比较熟悉,但值得怀疑
[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中的日志记录机制遵循一种“分层”方法,您可以定义每个类别的日志记录行为的日志记录者(始终有一个默认的根日志记录者)。
日志记录器根据类别和级别筛选消息,并根据配置将其发送到处理程序,它们可以使用与链接到根日志记录器的处理程序相同的处理程序,或者链接到特定的处理程序(如果愿意)。
通常至少有控制台处理程序和文件处理程序,但如果需要,可以添加其他处理程序
默认独立安装中的记录器列表:
[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为例:
这意味着对于org.jboss.as.config,loglevel设置为DEBUG,而as use parents handlers意味着在该记录器的父级上定义的处理程序也将用于该记录器
因此,对于这个类别,所有级别为DEBUG及以上的消息都被发送到处理程序,处理程序将应用它们的过滤器来决定是否输出消息。
在我们的例子中,我们将控制台处理程序级别设置为WARN,以便过滤掉WARN下面的所有消息
希望这能回答你的问题,或者至少为你在解决问题时考虑一些问题。尝试配置JBOSS-AdvestMyWorksStudio.xml来进行日志记录。
[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
}
}