如何将特定class的日志信息记录到特定的文件中?

How to record log information from a specific class into a specific file?

目前,我希望将指定 class 中的所有日志保存在特定文件中。 在我的 class 中,我已经实例化了我的记录器,而在我的 log4j.properties 中,我不知道要写什么信息,以便在特定的 class 中记录所有信息文件。

谁有例子,我就拿:)

提前致谢,

这是一个非常基本的 log4j.properties 文件示例,可以帮助您入门:

log4j.logger.com.yourpackage.yourclass=INFO, YourLoggerName

log4j.appender.YourLoggerName=org.apache.log4j.RollingFileAppender
log4j.appender.YourLoggerName.File=/path/to/logfile/forthisappender
log4j.appender.YourLoggerName.MaxFileSize=5M
log4j.appender.YourLoggerName.MaxBackupIndex=10
log4j.appender.YourLoggerName.layout=org.apache.log4j.PatternLayou
log4j.appender.YourLoggerName.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n

还有更完整的信息here

您好,您可以通过以下方式之一完成,

方法一:

首先准备好2-separate log4j配置文件 比方说,

 1. log4JMy.properties ( for whole application , we can called it default)
 2. log4jMy2.properties ( for specific class here in your case )

进入您的特定 class 您同样可以 re-configure log4j 属性,

org.apache.log4j.PropertyConfigurator.configure("log4jMy2.properties");*

这将修改存在的 log4j 配置,您可以通过 log4jMy2.properties 文件 override 它。

所以 class 完美地工作,但是你再次需要 re-set to default 以便再次回到 log4j 工作 normally/default 方式。


方法二:

进入你的 log4j.properties 文件,

分配不同的级别,适当的配置更改, 例如,

log4j.rootLogger=DEBUG,FILE,ERROR_FILE

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.file=${catalina.base}/logs/myApplicationLogs.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.Encoding=UTF-8
log4j.appender.FILE.MaxFileSize=5MB
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:%L - %m%n

log4j.appender.ERROR_FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR_FILE.file=${catalina.base}/logs/error_myApplicationLogs.log
log4j.appender.ERROR_FILE.Append=true
log4j.appender.ERROR_FILE.Encoding=UTF-8
log4j.appender.ERROR_FILE.MaxFileSize=5MB
log4j.appender.ERROR_FILE.MaxBackupIndex=10
log4j.appender.ERROR_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR_FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n

根据上述配置,从应用程序中,

LOG.debug("some text"); // it will print into myApplicationLogs.log file

无论在哪里, 如果你在写,

LOG.error("some erroneous text "); // it will print into error_myApplicationLogs.log file.

it will print logs as per log4j configuration file-wise into your corresponds logging file, best of luck...!