Log 4 jプロファイルの詳細
12455 ワード
:log4j
log4j.properties :
# Set root logger level to DEBUG and its only appender to A1
#log4j logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7
Logger, :
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
# log
# log4j.rootLogger=WARN, WARN,ERROR,FATAL
# ,DEBUG,INFO .
# A1 is set to be a ConsoleAppender.
#log4j Appender 、 、GUI 、 、NT 、UNIX Syslog
#ConsoleAppender
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 , log4j 4 . org.apache.log4j.HTMLLayout( HTML )
#org.apache.log4j.PatternLayout( ),
#org.apache.log4j.SimpleLayout( ),
#org.apache.log4j.TTCCLayout( 、 、 )
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# log4j javadoc org.apache.log4j.PatternLayout
#d ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R RollingFileAppender , 。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#
log4j.appender.R.File=log4j.log
#
log4j.appender.R.MaxFileSize=100KB
#
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
Logger, :
log4j.rootLogger = [ level ] , appenderName, appenderName, ...
level
appenderName 。 。
Appender,
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN
Log4j appender :
org.apache.log4j.ConsoleAppender( ),
org.apache.log4j.FileAppender( ),
org.apache.log4j.DailyRollingFileAppender( ),
org.apache.log4j.RollingFileAppender( ),
org.apache.log4j.WriterAppender( )
( ), :
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN
Log4j layout :
org.apache.log4j.HTMLLayout( HTML ),
org.apache.log4j.PatternLayout( ),
org.apache.log4j.SimpleLayout( ),
org.apache.log4j.TTCCLayout( 、 、 )
、Log4j
-----------------------------
:http://x.discuz.net/131976/viewspace_42754.html
Log4j :Loggers,Appenders Layouts, , 。 , 。 :
1、 Loggers
Loggers :DEBUG、INFO、WARN、ERROR FATAL。 ,DEBUG < INFO < WARN < ERROR < FATAL, , Log4j : Loggers P, Loggers Q P , , 。
Java :
// Logger , “com.foo”
Logger logger = Logger.getLogger("com.foo");
// logger 。 logger 。 。
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
// , WARN >= INFO
logger.warn("Low fuel level.");
// , DEBUG < INFO
logger.debug("Starting search for nearest gas station.");
// “com.foo.bar” barlogger “com.foo” 。 , , INFO >= INFO
barlogger.info("Located nearest gas station.");
// , DEBUG < INFO
barlogger.debug("Exiting gas station search");
“ ” Logger 。
Logger , , 。 Logger , Logger 。 , 。 :
static Logger logger = Logger.getLogger(ClientWithLog4j.class.getName());
2、 Appenders
Log4j ,Log4j , (Console)、 (Files)、 、 。
:
org.apache.log4j.ConsoleAppender( ),
org.apache.log4j.FileAppender( ),
org.apache.log4j.DailyRollingFileAppender( ),org.apache.log4j.RollingFileAppender( ),
org.apache.log4j.WriterAppender( )
:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
。
3、 Layouts
。Log4j Appenders Layouts 。Layouts , HTML 、 、 、 、 。
:
org.apache.log4j.HTMLLayout( HTML ),
org.apache.log4j.PatternLayout( ),
org.apache.log4j.SimpleLayout( ),
org.apache.log4j.TTCCLayout( 、 、 )
:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
Log4j , Java Log4j :
1、 Logger :
:public static Logger getLogger( String name)
:static Logger logger = Logger.getLogger (ServerWithLog4j.class.getName ()) ;
2、 :
Logger , Log4j :
:
BasicConfigurator.configure(): Log4j 。
PropertyConfigurator.configure(String configFilename): Java 。
DOMConfigurator.configure(String filename): XML 。
:PropertyConfigurator.configure("ServerWithLog4j.properties");
3、
, 。
:
Logger.debug(Object message);
Logger.info(Object message);
Logger.warn(Object message);
Logger.error(Object message);
:logger.info("ServerSocket before accept: " + server);
, Log4j 。 Logger、Appender Layout , :
1、 Logger, :
log4j.rootLogger = [ level ] , appenderName, appenderName, …
level Logger ,appenderName , 。 :log4j.rootLogger= INFO,A1,A2
2、 , :
log4j.appender.appenderName = fully.qualified.name.of.appender.class
。
3、 , :
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
Log4j ; , :
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=
%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
:
-X : X ;
%p:
%d{}:
%c: ( )
%m:
%n:
, :
0 INFO 2003-06-13 13:23:46968 ClientWithLog4j Client socket: Socket[addr=localhost/127.0.0.1,port=8002,localport=2014]
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server says: 'Java server with log4j, Fri Jun 13 13:23:46 CST 2003'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j GOOD
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Command 'HELLO' not understood.'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j HELP
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Vocabulary: HELP QUIT'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j QUIT
、 Log4j
:http://x.discuz.net/131976/viewspace_42752.html
Log4J (Configuration File) 、 , key=value xml 。 , Log4J 。
1.
Log4J :
# Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
# Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.optionN = valueN
# ( )
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN
[level] , 5 :
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
Appender ,Log4j appender :
org.apache.log4j.ConsoleAppender( ),
org.apache.log4j.FileAppender( ),
org.apache.log4j.DailyRollingFileAppender( ),
org.apache.log4j.RollingFileAppender( ),
org.apache.log4j.WriterAppender( )
Layout: ,Log4j layout :
org.apache.log4j.HTMLLayout( HTML ),
org.apache.log4j.PatternLayout( ),
org.apache.log4j.SimpleLayout( ),
org.apache.log4j.TTCCLayout( 、 、 )
: Log4J C printf , :
%m
%p , DEBUG,INFO,WARN,ERROR,FATAL
%r log
%c ,
%t
%n ,Windows “\r
”,Unix “
”
%d , ISO8601, , :%d{yyy MMM dd HH:mm:ss , SSS}, :2002 10 18 22 : 10 : 28 , 921
%l , 、 , 。 :Testlog4.main(TestLog4.java: 10 )
2. Logger:
1) BasicConfigurator.configure() : ConsoleAppender, PatternLayout "%-4r [%t] %-5p %c %x - %m%n", Level.DEBUG.
2) , , PropertyConfigurator.configure(args[x]) ;
3) , , log4j ;
4) , , servlet 。
3. Appender :
, , , BUG!? 。
。 ,Log4j , Appender Threshold , :
[ ]
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### ###
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{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ##
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## ERROR !!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
[ ]
public class TestLog4j {
public static void main(String[] args) {
PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
}
}
, error.log 。