根记录器级别和控制台处理程序级别
root-logger level and console-handler level
我的standalone.xml设置如下:
<subsystem xmlns="urn:jboss:domain:logging:6.0">
<console-handler name="CONSOLE">
<!--<level name="INFO"/>-->
<level name="DEBUG"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="io.jaegertracing.Configuration">
<level name="WARN"/>
</logger>
<logger category="org.jboss.as.config">
<level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
<formatter name="PATTERN">
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
<formatter name="COLOR-PATTERN">
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
在我的 Class EXM010 中,
private final static Log logger = LogFactory.getLog(EXM010.class);
public void method1(){
logger.debug("see debug?");
logger.info("see info?");
1) 我发现如果 root-logger 级别是 "INFO",那么即使 console-handler 级别是 "DEBUG","see debug?" 也没有显示,我必须设置 [=12] =] 要显示 "see debug?" 消息,为什么?
2) 如果我将 root-logger 级别设置为 "DEBUG",那么太多的 wildfly 调试消息无法显示....任何让 wildfly 调试消息级别为 "INFO" 的方法,只是我的class EXM010 或我的应用程序代码级别为 "DEBUG"?
您需要添加一个记录器,并将其设置为记录器的调试级别。例如,如果您 class 名称是 org.example.EXM010.class
,您需要添加一个记录器,例如:
/subsystem=logging/logger=org.example.EXM010:add(level=DEBUG)
如果您想查看同一包的更多调试消息,只需添加 org.example
记录器即可。
最好使用 CLI 或 Web 管理控制台来执行此操作。以这种方式添加或编辑记录器时,无需重新启动或重新加载服务器。
我的standalone.xml设置如下:
<subsystem xmlns="urn:jboss:domain:logging:6.0">
<console-handler name="CONSOLE">
<!--<level name="INFO"/>-->
<level name="DEBUG"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="io.jaegertracing.Configuration">
<level name="WARN"/>
</logger>
<logger category="org.jboss.as.config">
<level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
<formatter name="PATTERN">
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
<formatter name="COLOR-PATTERN">
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
在我的 Class EXM010 中,
private final static Log logger = LogFactory.getLog(EXM010.class);
public void method1(){
logger.debug("see debug?");
logger.info("see info?");
1) 我发现如果 root-logger 级别是 "INFO",那么即使 console-handler 级别是 "DEBUG","see debug?" 也没有显示,我必须设置 [=12] =] 要显示 "see debug?" 消息,为什么?
2) 如果我将 root-logger 级别设置为 "DEBUG",那么太多的 wildfly 调试消息无法显示....任何让 wildfly 调试消息级别为 "INFO" 的方法,只是我的class EXM010 或我的应用程序代码级别为 "DEBUG"?
您需要添加一个记录器,并将其设置为记录器的调试级别。例如,如果您 class 名称是 org.example.EXM010.class
,您需要添加一个记录器,例如:
/subsystem=logging/logger=org.example.EXM010:add(level=DEBUG)
如果您想查看同一包的更多调试消息,只需添加 org.example
记录器即可。
最好使用 CLI 或 Web 管理控制台来执行此操作。以这种方式添加或编辑记录器时,无需重新启动或重新加载服务器。