标签:
log4j.jar 用于记录 java 程序 日志,在项目开发中非常有用
log4j.properties 配置 ( 放在使用到 log4j.jar Logger 的 类 同一个包下)
log4j 有五个输出级别。此处用 info 级别举例。
1: 日志 输出到 控制台( 更好的格式化 输出信息到控制台,此处只 输出 日志信息 内容 ,日志信息格式化 还有有很多相应的参数)
1 log4j.rootLogger=INFO,appender1 2 3 # 输出到控制台 4 log4j.appender.appender1=org.apache.log4j.ConsoleAppender 5 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout 6 log4j.appender.appender1.layout.ConversionPattern= %m%n
2: 输出到文件(输出到 项目下根目录 下 log/log.log 文件中,文件内存最大值、文件最大个数可扩展)
1 log4j.rootLogger=INFO,appender2 2 log4j.appender.appender2=org.apache.log4j.FileAppender 3 log4j.appender.appender2.File=log/log.log 4 log4j.appender.appender2.layout=org.apache.log4j.PatternLayout 5 log4j.appender.appender2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
3: 输出到数据库 (必须有 mysql 的那个jar 包 ,注意配置文件log4j.properties 要符合 properties文件写法,value 之后不要有多余的空格 !)
此时 创建 mysql 数据表
id int 主键,自增 // 索引作用
info varchar(200) not null // 日志记录的信息
1 log4j.rootLogger=INFO,appender3 2 log4j.appender.appender3=org.apache.log4j.jdbc.JDBCAppender 3 log4j.appender.appender3.driver=com.mysql.jdbc.Driver 4 log4j.appender.appender3.URL=jdbc:mysql://localhost:3306/downloadbar?useUnicode=true&characterEncoding=UTF-8 5 log4j.appender.appender3.user=root 6 log4j.appender.appender3.password=123456 7 log4j.appender.appender3.sql=insert into ndlog values(default,‘%m‘) 8 log4j.appender.appender3.layout=org.apache.log4j.PatternLayout
java 使用
1 import org.apache.log4j.Logger; 2 import org.apache.log4j.PropertyConfigurator; 3 4 public class Test { 5 public static Logger log; 6 static { 7 PropertyConfigurator.configure(Test.class.getResourceAsStream("log4j.properties")); 8 Test.log = Logger.getLogger(loginsertDb.Test.class); 9 } 10 11 public static void main(String[] args) { 12 13 Test.log.info("http://7jpo9g.com1.z0.glb.clouddn.com/3814901_ejrngi.jpg" + "z@c" 14 + "java.net.SocketTimeoutException: Read timed out"); 15 16 17 18 } 19 }
假如有如下情况: Client.java 要输出 两种不同的信息 到不同的位置, 信息一 输出到文件,信息二输出到 数据库
建立两个包,两个包下都有相应的 如 Test 类 的 类文件,两个包下都有各自的 log4j.properties 文件。(定义 不同的输出位置;
Client 中调用 方式:
1 public class Client { 2 public static void main(String[] args) { 3 Test.log.info("写入数据库的信息"); 4 Test2.log.info("写入文件的信息"); 5 } 6 }
可 实现 上述效果。
标签:
原文地址:http://www.cnblogs.com/ChuangZhang/p/5365651.html