创建一个maven项目。
在pom.xml中
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
导入jar包
log4j.properties
配置文件放在src/main/resources下,名称固定,不可随意更改。
第一行的级别设置:从高到底ERROR, WARN, INFO,DEBUG
日志文件输出:./logs/access.log
控制台输出格式:%d{yyyy-MM-dd HH:mm:ss} [%p] %l %m %n
log4j.rootLogger=debug,console, file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %l %m %n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=./logs/access.log
log4j.appender.file.DatePattern='_'yyyyMMdd'.log'
log4j.appender.file.encoding=UTF-8
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %l %m%n
log4j.appender.file.Append=true
package com.zhiyou.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import com.alibaba.druid.pool.DruidDataSourceFactory;
/**
* 数据库相关操作
*
* @author jack 1.获取数据库连接 2.释放资源
*
*/
public class DBUtil {
private static Logger log = Logger.getLogger(DBUtil.class);
private static DataSource ds;
static {
try {
InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties props = new Properties();
props.load(in);
ds = DruidDataSourceFactory.createDataSource(props);
log.info("数据库连接池初始化成功.....");
} catch (Exception ex) {
log.error("初始化数据库连接池异常:" + ex.getMessage());
}
}
/**
* 获取数据连接
*
* @return
*/
public static Connection getConnection() {
try {
Connection conn = ds.getConnection();
log.info("获取数据库连接成功!");
return conn;
} catch (SQLException e) {
log.error("获取数据库连接失败" + e.getMessage());
}
return null;
}
/**
* 释放资源
*
* @param conn
* @param pst
*/
public static void close(Connection conn, PreparedStatement pst) {
try {
pst.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 释放资源
*
* @param conn
* @param pst
* @param rs
*/
public static void close(Connection conn, PreparedStatement pst, ResultSet rs) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}