相关疑难解决方法(0)

如何配置log4j以将不同的日志级别记录到同一记录器的不同文件中

我有一个正常的INFO级别日志用于应用程序.我需要的是另外记录所有ERROR级事件以分离错误日志.我正在使用这样的配置:

<logger name="com.acme">
  <level value="error"/>
  <appender-ref ref="error"/>
</logger>

<logger name="com.acme">
  <level value="info"/>
</logger>

<root>
  <level value="warn"/>
  <appender-ref ref="general"/>
</root>
Run Code Online (Sandbox Code Playgroud)

此配置仅记录错误.如果我首先放置信息级别记录器,那么它将仅记录到常规appender,但错误记录器将不起作用.我想让他们都工作.

java logging log4j

55
推荐指数
3
解决办法
5万
查看次数

Log4j.xml类别多个appender-ref具有不同的优先级

我希望能够拥有不同优先级的不同appender

<category name="my.package" additivity="false">  
    <priority value="fatal" />  
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="fileAppender" />
</category>
Run Code Online (Sandbox Code Playgroud)

我认为这样的东西会奏效,但事实并非如此

<category name="my.package" additivity="false">  
    <priority value="fatal" ref="consoleAppender" /> 
    <priority value="info" ref="fileAppender"/> 
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="fileAppender" />
</category>  
Run Code Online (Sandbox Code Playgroud)

java log4j

6
推荐指数
1
解决办法
4580
查看次数

log4j,需要在日志文件中只显示INFO和ERROR消息

我是log4j的新手,并努力设置eclipse及其运行.我理解了关卡中的优先级链,这是我的属性文件配置:

log4j.rootLogger=ALL, file, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/justfortesting.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=1KB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n
Run Code Online (Sandbox Code Playgroud)

我的问题是

是否可以在具有属性文件配置的日志文件中仅打印INFO和ERROR类型的消息

java log4j

5
推荐指数
1
解决办法
7131
查看次数

Log4j:如何编写配置?

我将Log4j2添加到项目中,并添加了config。

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Run Code Online (Sandbox Code Playgroud)

然后,我记录如下代码:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

...

final static Logger logger = LogManager.getLogger(AbstractEditor.class);

...

logger.info("updated: " + entity);
logger.debug("==> debug");
logger.info("==> info");
logger.warn("==> warn");
logger.error("==> error");
logger.fatal("==> fatal");
logger.trace("==> trace");
Run Code Online (Sandbox Code Playgroud)

据我了解,所有级别高于DEBUG的日志都必须写入控制台和文件。但只有这个被打印到控制台:

15:08:52.285 [http-nio-8080-exec-1] ERROR ru.example.AbstractEditor - ==> error
15:08:52.292 …
Run Code Online (Sandbox Code Playgroud)

java log4j2

4
推荐指数
1
解决办法
3400
查看次数

标签 统计

java ×4

log4j ×3

log4j2 ×1

logging ×1