标签:
#可以设置级别:debug>info>error #debug:显示debug、info、error #info:显示info、error #error:只error log4j.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender1 #输出到控制台 log4j.appender.stdout.Threshold=DEBUG 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=[Bash]:%d %5p (%c:%L) - %m%n
1 private static Logger logger = Logger.getLogger(Log.class); 2 3 public static void main(String[] args) { 4 // System.out.println("This is println message."); 5 6 // 记录debug级别的信息 7 logger.debug("This is debug message."); 8 // 记录info级别的信息 9 logger.info("This is info message."); 10 // 记录error级别的信息 11 logger.error("This is error message."); 12 }
运行后,在控制台上的输出如下:
[Bash]:2016-01-18 23:10:11,089 INFO (com.sean.log.LogTest1:14) - This is info message
[Bash]:2016-01-18 23:10:11,093 ERROR (com.sean.log.LogTest1:15) - This is error message
上面,我们实现了Log4J的控制台输出,这里面,需要用到的代码并不多,相对而言,需要说的是log4J的配置文件。在通用的开发环境中,Log4J的使用,重点就是在于其配置文件的配置中。Log4J的配置文件有两种,一种是采用properties文件,另一种是使用xml文件。常见的,也是使用properties的方式进行配置。
1. DEBUG (the least serious)
# 2. INFO
# 3. WARN
# 4. ERROR
# 5. FATAL (the most serious)
log4j.appender.appenderName = class#配置日志输出采用的类
log4j.appender.appenderName.key= value#配置相关日志输出的参数
|
到这里,暂时不再说如何输出,先说下输出什么。在第一个实例中,能够发现,控制台的输出和在配置文件中配置的参数是有关的。
log4j.rootLogger=DEBUG,CONSOLE,A1,im 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=[bash] %d - %c -%-4r [%t] %-5p %c %x - %m%n #格式化标准 #应用于文件(单个文件) log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE .Threshold=ERROR log4j.appender.FILE.File=file.log #文件名 log4j.appender.FILE.Append=true #是否累加,是为增量输出,否未覆盖输出 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout #格式化方式 log4j.appender.FILE.layout.ConversionPattern=[bash ] %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 # 应用于文件增量添加,按照日期 log4j.appender.Daily_ROLLING_FILE=org.apache.log4j. DailyRollingFileAppender#输出类 log4j.appender.Daily_ROLLING_FILE .Threshold=ERROR #输出级别 log4j.appender.Daily_ROLLING_FILE .File=rolling.log #文件位置,可以动态配置 log4j.appender.Daily_ROLLING_FILE .Append=true #是否累加,是为增量输出,否未覆盖输出 log4j.appender.info.DatePattern=-yyyy-MM-dd‘.log‘ log4j.appender.Daily_ROLLING_FILE .layout=org.apache.log4j.PatternLayout #格式化方式 log4j.appender.Daily_ROLLING_FILE .layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n #应用于socket log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender log4j.appender.SOCKET.RemoteHost=localhost log4j.appender.SOCKET.Port=5001 log4j.appender.SOCKET.LocationInfo=true log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout log4j.appender.SOCKET.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n # 发送日志给邮件(这种方式用公用邮箱时常会被拦截) log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From= @126.com log4j.appender.MAIL.SMTPHost=smtp.126.com log4j.appender.MAIL.SMTPUsername= @126.com log4j.appender.MAIL.SMTPPassword= log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To= @qq.com log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout log4j.appender.MAIL.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n # html输出 log4j.appender.HTML=org.apache.log4j.FileAppender log4j.appender.HTML.File=D://htmlLayout.html log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout log4j.appender.HTML.layout.Title=HTML Layout Example log4j.appender.HTML.layout.LocationInfo=true log4j.appender.HTML.layout.ConversionPattern=[bash ] %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=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于socket log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender log4j.appender.SOCKET.RemoteHost=localhost log4j.appender.SOCKET.Port=9090 log4j.appender.SOCKET.LocationInfo=true log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout log4j.appender.SOCET.layout.ConversionPattern=[Bash]:%d %5p (%c:%L) - %m%n
默认情况下log4j采用的是tcp协议进行访问,所以,在服务器端需要有个程序,监听9090端口,来实现日志的接收
public static void main(String arg[]) throws IOException { ServerSocket serverSocket=new ServerSocket(9090); while (true){ Socket s= serverSocket.accept(); String line; BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream(),"utf-8")); System.out.println(is.readLine()); } }
循序渐进看Java web日志跟踪(3)-Log4J的使用和配置
标签:
原文地址:http://www.cnblogs.com/Seanit/p/5140953.html