Log 4 jプロファイルの詳細


 :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 。