先输出属性文件 log4j.properties
### set log levels ###
log4j.rootLogger = MAIL,error,info,CONSOLE
### Console ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.Threshold=TRACE
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n
### File ###
log4j.logger.info = info
log4j.appender.info = org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File = log/info/info-
log4j.appender.info.DatePattern=yyyy-MM-dd-HH-mm'.log'
log4j.appender.info.Append = true
log4j.appender.info.Threshold = INFO
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n
### Error ###
log4j.logger.error = error
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = log/error/error-
log4j.appender.error.DatePattern=yyyy-MM-dd-HH-mm'.log'
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
## mail
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.From=XXX1@qq.com
log4j.appender.MAIL.SMTPUsername=XXX1@qq.com
log4j.appender.MAIL.SMTPHost=smtp.qq.com
log4j.appender.MAIL.SMTPPassword=abnpugdfsgfhdfgptauwgmieja
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.SMTPPort=587
log4j.appender.MAIL.To=XXX2@qq.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[productname][%-5p][%t] %d{yyyy-MM-dd HH\:mm\:ss\:SSS}-%-4r%c %x%L| %m%n
主函数输出
Logger log=Logger.getLogger(getlog.class);
log.debug("输出到控制台!");
log.info("warn!!!");
log.error("输入error消息");
//log.fatal("通过log4j发送邮件测试");
结论: 之所以无法再控制台输出,主要是红色标记部分 要按照从高到底输出
FATAL、ERROR、WARN、INFO、DEBUG、TRACE
FATAL对应邮件,是最高级别
Error 次之。。。。。
所以 log4j.rootLogger = MAIL,error,info,CONSOLE
的顺序是Mail最前面,console最后面