In the following code, in addition to specifying rootlogger to output to the console and file logdemo. in addition to logs, a specific logger is defined to output logs to the logdemo2.log file, without inheriting the output features of rootlogger.
Lab environment log4j-1.2.11
Log4j. properties:
#category/loggerlog4j.rootLogger=debug, stdout, filelog4j.logger.SpecialPurpose=debug,file2#Successionlog4j.additivity.SpecialPurpose=false#to consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p %c %m %n#to file#log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.File=logdemo.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n#to file2log4j.appender.file2=org.apache.log4j.FileAppenderlog4j.appender.file2.File=logdemo2.loglog4j.appender.file2.layout=org.apache.log4j.PatternLayoutlog4j.appender.file2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n
Java:
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.log4j.Logger;public class Log4jTest {private static Logger logger =Logger.getLogger(Log4jTest.class);private static Log logger2 = LogFactory.getLog("SpecialPurpose");public static void main(String[] args) {logger.error("error");logger.warn("warn");logger.info("info");logger.debug("debug");logger2.error("error for SpecialPurpose...");logger2.warn("warn for SpecialPurpose...");logger2.info("info for SpecialPurpose...");logger2.debug("debug for SpecialPurpose...");}}
Logdemo. log and console file information:
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 13) Error
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 14) warn
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 15) info
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 16) debug
Logdemo2.log file information:
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 18) Error for specialpurpose...
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 19) warn for specialpurpose...
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 20) info for specialpurpose...
2012-12-13 22:06:23 log4jtest. Main (log4jtest. Java: 21) debug for specialpurpose...