Wildfly 日志记录配置文件设置 ( logger.debug("test") )
Wildfly Logging Profile Setting ( logger.debug("test") )
我想为我的应用程序日志创建配置文件
我需要使用 logger.debug()
,但如果我在 standalone.xml
文件 DEBUG 中输入,我会得到太多行
从 <level name="INFO"/>
到 <level name="DEBUG"/>
.....................
<subsystem xmlns="urn:jboss:domain:logging:3.0">
<console-handler name="CONSOLE">
<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="org.jboss.as.config">
<level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<root-logger>
<level name="DEBUG"/>
<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>
</subsystem>
......................
我可以创建一个只启用我的应用程序调试日志记录的配置文件吗?
我创建了我的个人资料并添加到我的 MANIFEST.MF 但它不起作用
<logging-profiles>
<logging-profile name="accounts-app-profile">
<console-handler name="CONSOLE">
<level name="DEBUG"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<file-handler name="ejb-trace-file">
<level name="DEBUG"/>
<file relative-to="jboss.server.log.dir" path="ejb-trace.log"/>
</file-handler>
<logger category="com.company.accounts.ejbs">
<level name="DEBUG"/>
<handlers>
<handler name="ejb-trace-file"/>
</handlers>
</logger>
<formatter name="COLOR-PATTERN">
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
</logging-profile>
MANIFEST.MF
Manifest-Version: 1.0
Logging-Profile: accounts-app-profile
调用记录器
final static Logger logger = Logger.getLogger("com.company.accounts.ejbs");
logger.debug("debug");
logger.info("info");
文件ejb-trace.log
创建但不写入
不要更改根记录器,而是添加一个与您要调试的包名称相匹配的类别
您尝试执行的操作不需要日志记录配置文件。假设类别 com.company.accounts.ejbs
并假设您希望将来自应用程序的消息记录到它们自己的文件中,以下 CLI 命令将
/subsystem=logging/file-handler=ejb-trace-file:add(level=DEBUG, file={relative-to=jboss.server.log.dir, path=ejb-trace.log}, autoflush=true)
/subsystem=logging/logger=com.company.accounts.ejbs:add(level=DEBUG, handlers=[ejb-trace-file], use-parent-handlers=false)
如果您还希望将消息记录到控制台处理程序或 server.log,您可以删除 use-parent-handlers=false
属性或将其设置为 true
。
这可能是旧的post,因为我遇到这个post来解决我上面描述的问题,以后有人也可以阅读这个。因此,我想在这里分享我的答案。
在我的例子中,我遵循了这个 post https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6.2/html/administration_and_configuration_guide/example_logging_profile_configuration 和其他几个,并在 wildFly server
的 standalone.xml
文件中创建了 <logging-profile>
并创建了 MANIFEST.MF
文件在 \src\main\resources\META_INF
文件夹中手动创建,然后日志文件已创建,但日志内容未写入其中。
原因是我的应用程序使用 Maven 进行构建配置和创建清单文件。
如果应用程序使用 maven
构建配置或使用 maven
插件创建 manifest.mf
文件,那么您必须在应用程序的 pom.xml
文件中添加以下信息.
- 如果应用程序使用
maven
进行构建配置,则在 pom.xml
<build> <plugins>
标记 中添加以下行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
- 如果应用程序使用
maven
插件创建 manifest.mf
文件,则在 pom.xml
<manifestEntries>
中添加以下行,即
<build>
<plugins>
<plugin>
<archive>
<manifestEntries>
<Logging-Profile>myAppLogProfile</Logging-Profile>
</manifestEntries>
添加后,如果您执行 mvn clean
和 mvn install
,则 Logging-Profile: myAppLogProfile
行将添加到 war 文件中的 MANIFEST.MF
文件中
Manifest-Version: 1.0
Logging-Profile: myAppLogProfile
此后当我重新部署它时,日志文件中有日志内容。
希望这对某人有所帮助。
我想为我的应用程序日志创建配置文件
我需要使用 logger.debug()
,但如果我在 standalone.xml
文件 DEBUG 中输入,我会得到太多行
从 <level name="INFO"/>
到 <level name="DEBUG"/>
.....................
<subsystem xmlns="urn:jboss:domain:logging:3.0">
<console-handler name="CONSOLE">
<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="org.jboss.as.config">
<level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<root-logger>
<level name="DEBUG"/>
<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>
</subsystem>
......................
我可以创建一个只启用我的应用程序调试日志记录的配置文件吗?
我创建了我的个人资料并添加到我的 MANIFEST.MF 但它不起作用
<logging-profiles>
<logging-profile name="accounts-app-profile">
<console-handler name="CONSOLE">
<level name="DEBUG"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<file-handler name="ejb-trace-file">
<level name="DEBUG"/>
<file relative-to="jboss.server.log.dir" path="ejb-trace.log"/>
</file-handler>
<logger category="com.company.accounts.ejbs">
<level name="DEBUG"/>
<handlers>
<handler name="ejb-trace-file"/>
</handlers>
</logger>
<formatter name="COLOR-PATTERN">
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
</logging-profile>
MANIFEST.MF
Manifest-Version: 1.0
Logging-Profile: accounts-app-profile
调用记录器
final static Logger logger = Logger.getLogger("com.company.accounts.ejbs");
logger.debug("debug");
logger.info("info");
文件ejb-trace.log
创建但不写入
不要更改根记录器,而是添加一个与您要调试的包名称相匹配的类别
您尝试执行的操作不需要日志记录配置文件。假设类别 com.company.accounts.ejbs
并假设您希望将来自应用程序的消息记录到它们自己的文件中,以下 CLI 命令将
/subsystem=logging/file-handler=ejb-trace-file:add(level=DEBUG, file={relative-to=jboss.server.log.dir, path=ejb-trace.log}, autoflush=true)
/subsystem=logging/logger=com.company.accounts.ejbs:add(level=DEBUG, handlers=[ejb-trace-file], use-parent-handlers=false)
如果您还希望将消息记录到控制台处理程序或 server.log,您可以删除 use-parent-handlers=false
属性或将其设置为 true
。
这可能是旧的post,因为我遇到这个post来解决我上面描述的问题,以后有人也可以阅读这个。因此,我想在这里分享我的答案。
在我的例子中,我遵循了这个 post https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6.2/html/administration_and_configuration_guide/example_logging_profile_configuration 和其他几个,并在 wildFly server
的 standalone.xml
文件中创建了 <logging-profile>
并创建了 MANIFEST.MF
文件在 \src\main\resources\META_INF
文件夹中手动创建,然后日志文件已创建,但日志内容未写入其中。
原因是我的应用程序使用 Maven 进行构建配置和创建清单文件。
如果应用程序使用 maven
构建配置或使用 maven
插件创建 manifest.mf
文件,那么您必须在应用程序的 pom.xml
文件中添加以下信息.
- 如果应用程序使用
maven
进行构建配置,则在pom.xml
<build> <plugins>
标记 中添加以下行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
- 如果应用程序使用
maven
插件创建manifest.mf
文件,则在pom.xml
<manifestEntries>
中添加以下行,即
<build>
<plugins>
<plugin>
<archive>
<manifestEntries>
<Logging-Profile>myAppLogProfile</Logging-Profile>
</manifestEntries>
添加后,如果您执行 mvn clean
和 mvn install
,则 Logging-Profile: myAppLogProfile
行将添加到 war 文件中的 MANIFEST.MF
文件中
Manifest-Version: 1.0
Logging-Profile: myAppLogProfile
此后当我重新部署它时,日志文件中有日志内容。
希望这对某人有所帮助。