第一、Logger.getLogger()和LogFactory.getLog()的区别
common-logging组件:
- package
org; - import
org.apache.commons.logging.Log; - import
org.apache.log4j.Logger; - public
class Test extends TagSupport{ - public
static Log log=LogFactory.getLog(Test.class); - public
static void test() - {
- log.debug("111");
- log.info("125");
- log.warn("485");
- log.error("error");
-
- }
- public
static void main(String[] a) - {
- Test.test();
- }
- }
package org;
import org.apache.commons.logging.Log;
import org.apache.log4j.Logger;
public class Test extends TagSupport{
public static Log log=LogFactory.getLog(Test.class);
public static void test()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("error");
}
public static void main(String[] a)
{
Test.test();
}
}
- import
org.apache.log4j.Logger; - import
org.apache.log4j.PropertyConfigurator; - public
class TestLog4j { -
- static
Logger logger = Logger.getLogger(TestLog4j.class); -
public static void main(String args[]) { -
PropertyConfigurator.configure("log4j.properties"); -
logger.debug("Here is some DEBUG"); -
logger.info("Here is some INFO"); -
logger.warn("Here is some WARN"); -
logger.error("Here is some ERROR"); -
logger.fatal("Here is some FATAL"); -
} - }
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class TestLog4j {
static Logger logger = Logger.getLogger(TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
}
}
第二、详细介绍Log4j
- org.apache.log4j.ConsoleAppender(控制台)
- org.apache.log4j.FileAppender(文件)
- org.apache.log4j.DailyRollingFileAppender
(每天都产生一个日志文件) - org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸时产生一个新的日志文件,文件名称上会自动添加数字序号。)
- org.apache.log4j.WriterAppender(将日志信息以流的格式发送到任意指定的地方)
-
- org.apache.log4j.ConsoleAppender(控制台)
- org.apache.log4j.FileAppender(文件)
- org.apache.log4j.DailyRollingFileAppender
(每天都产生一个日志文件) - org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸时产生一个新的日志文件,文件名称上会自动添加数字序号。)
- org.apache.log4j.WriterAppender(将日志信息以流的格式发送到任意指定的地方)
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender (每天都产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸时产生一个新的日志文件,文件名称上会自动添加数字序号。)
org.apache.log4j.WriterAppender(将日志信息以流的格式发送到任意指定的地方)
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender (每天都产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸时产生一个新的日志文件,文件名称上会自动添加数字序号。)
org.apache.log4j.WriterAppender(将日志信息以流的格式发送到任意指定的地方)
- org.apache.log4j.HTMLLayout(以HTML表格形式布局)
- org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
- org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
- org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
-
-
org.apache.log4j.HTMLLayout(以HTML表格形式布局) -
org.apache.log4j.PatternLayout(可以灵活地指定布局模式) -
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) -
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
- %m:输出代码中指定的消息。
- %p:输出优先级。
- %r:输入自应用启动到输出该log信息耗费的毫秒数。
- %c:输出所属的类目,通常就是所在类的全名。
- %n:输出一个回车换行符。Windows平台为“\r\n”,UNIX为“\n”。
- %d:输出日志时间点的日期或时间,默认格式为ISO8601,推荐使用“%d{ABSOLUTE}”,这个输出格式形如:“2007-05-07
18:23:23,500”,符合中国人习惯。 - %l:输出日志事件发生的位置,包括类名、线程名,以及所在代码的行数。
- %m:输出代码中指定的消息。
- %c:输出所属的类目,通常就是所在类的全名。
- %t:输出产生该日志线程的线程名。
- %n:输出一个回车换行符。Windows平台为“\r\n”,UNIX为“\n”。
- %d:输出日志时间点的日期或时间,默认格式为ISO8601,推荐使用“%d{ABSOLUTE}”,这个输出格式形如:“2007-05-07
18:23:23,500”,符合中国人习惯。 - %l:输出日志事件发生的位置,包括类名、线程名,以及所在代码的行数。
- %d
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28 - %f
输出日志信息所属的类的类名 - %l
输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行 - %m
输出代码中指定的信息,如log(message)中的message - %p
输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推 - %r
输出自应用启动到输出该日志信息所耗费的毫秒数 - %t
输出产生该日志事件的线程名
%m:输出代码中指定的消息。
%p:输出优先级。
%r:输入自应用启动到输出该log信息耗费的毫秒数。
%c:输出所属的类目,通常就是所在类的全名。
%n:输出一个回车换行符。Windows平台为“\r\n”,UNIX为“\n”。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,推荐使用“%d{ABSOLUTE}”,这个输出格式形如:“2007-05-07 18:23:23,500”,符合中国人习惯。
%l:输出日志事件发生的位置,包括类名、线程名,以及所在代码的行数。
%m:输出代码中指定的消息。
%c:输出所属的类目,通常就是所在类的全名。
%t:输出产生该日志线程的线程名。
%n:输出一个回车换行符。Windows平台为“\r\n”,UNIX为“\n”。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,推荐使用“%d{ABSOLUTE}”,这个输出格式形如:“2007-05-07 18:23:23,500”,符合中国人习惯。
%l:输出日志事件发生的位置,包括类名、线程名,以及所在代码的行数。
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
对Log4j的配置就是对rootLogger和子Logger的配置。主要的配置项为:rootLogger、输出终端、输出布局模式,所有的配置项都必须以log4j开头。
- ##Log4J的配置之简单使它遍及于越来越多的应用中了
-
- ##Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了。
-
- ##此文件(log4j.properties)内容来自网络,非本文作者liigo原创。
- log4j.rootLogger
= DEBUG, CONSOLE,A1 - log4j.addivity.org.apache
= true -
- #
应用于控制台 - log4j.appender.CONSOLE
= org.apache.log4j.ConsoleAppender - log4j.appender.Threshold
= DEBUG - log4j.appender.CONSOLE.Target
= System.out - log4j.appender.CONSOLE.layout
= org.apache.log4j.PatternLayout - log4j.appender.CONSOLE.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n - #log4j.appender.CONSOLE.layout.ConversionPattern
= [start] % d {DATE} [DATE] % n % p[PRIORITY] % n % x[NDC] % n % t[THREAD] n % c[CATEGORY] % n % m[MESSAGE] % n % n -
- #应用于文件
- log4j.appender.FILE
= org.apache.log4j.FileAppender - log4j.appender.FILE.File
= file.log - log4j.appender.FILE.Append
= false - log4j.appender.FILE.layout
= org.apache.log4j.PatternLayout - log4j.appender.FILE.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n - #
Use this layout for LogFactor 5 analysis -
- #
应用于文件回滚 - log4j.appender.ROLLING_FILE
= org.apache.log4j.RollingFileAppender - log4j.appender.ROLLING_FILE.Threshold
= ERROR - log4j.appender.ROLLING_FILE.File
= rolling.log - log4j.appender.ROLLING_FILE.Append
= true - log4j.appender.ROLLING_FILE.MaxFileSize
= 10KB - log4j.appender.ROLLING_FILE.MaxBackupIndex
= 1 - log4j.appender.ROLLING_FILE.layout
= org.apache.log4j.PatternLayout - log4j.appender.ROLLING_FILE.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n -
- #应用于socket
- log4j.appender.SOCKET
= org.apache.log4j.RollingFileAppender - log4j.appender.SOCKET.RemoteHost
= localhost - log4j.appender.SOCKET.Port
= 5001 - log4j.appender.SOCKET.LocationInfo
= true - #
Set up for Log Facter 5 - log4j.appender.SOCKET.layout
= org.apache.log4j.PatternLayout - log4j.appender.SOCET.layout.ConversionPattern
= [start] % d {DATE} [DATE] % n % p[PRIORITY] % n % x[NDC] % n % t[THREAD] % n % c[CATEGORY] % n % m[MESSAGE] % n % n -
- #
Log Factor 5 Appender - log4j.appender.LF5_APPENDER
= org.apache.log4j.lf5.LF5Appender - log4j.appender.LF5_APPENDER.MaxNumberOfRecords
= 2000 -
- #
发送日志给邮件 - log4j.appender.MAIL
= org.apache.log4j.net.SMTPAppender - log4j.appender.MAIL.Threshold
= FATA - log4j.appender.MAIL.BufferSize
= 10 - log4j.appender.MAIL.From
= web@www.wuset.com - log4j.appender.MAIL.SMTPHost
= www.wusetu.com - log4j.appender.MAIL.Subject
= Log4J Message - log4j.appender.MAIL.To
= web@www.wusetu.com - log4j.appender.MAIL.layout
= org.apache.log4j.PatternLayout - log4j.appender.MAIL.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n -
-
- #
用于数据库 - log4j.appender.DATABASE
= org.apache.log4j.jdbc.JDBCAppender - log4j.appender.DATABASE.URL
= jdbc:mysql: // localhost:3306/test - log4j.appender.DATABASE.driver
= com.mysql.jdbc.Driver - log4j.appender.DATABASE.user
= root - log4j.appender.DATABASE.password
= - log4j.appender.DATABASE.sql
= INSERT INTO LOG4J (Message) VALUES ( ' [framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n ' ) - log4j.appender.DATABASE.layout
= org.apache.log4j.PatternLayout - log4j.appender.DATABASE.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n - log4j.appender.A1
= org.apache.log4j.DailyRollingFileAppender - log4j.appender.A1.File
= SampleMessages.log4j - log4j.appender.A1.DatePattern
= yyyyMMdd - HH ' .log4j ' - log4j.appender.A1.layout
= org.apache.log4j.xml.XMLLayout -
- #自定义Appender
- log4j.appender.im
= net.cybercorlin.util.logger.appender.IMAppender - log4j.appender.im.host
= mail.cybercorlin.net - log4j.appender.im.username
= username - log4j.appender.im.password
= password - log4j.appender.im.recipient
= corlin@cybercorlin.net - log4j.appender.im.layout
= org.apache.log4j.PatternLayout - log4j.appender.im.layout.ConversionPattern
= [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n -
- #
结束