log4j 에 proxool 데이터베이스 연결 풀 을 설치 합 니 다.
1.먼저 보조 클래스 를 작성 합 니 다.
package com.wallimn.util;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import org.logicalcobwebs.proxool.configuration.PropertyConfigurator;
/**
*
* <br/>
* :wallimn :2009-1-5 08:10:52<br/>
* :V1.0<br/>
*/
public class DbManager {
private static DbManager manager = new DbManager();
static{
URL url = ClassLoader.getSystemResource("proxool.properties");
try {
String fileName = url.getPath();
PropertyConfigurator.configure(fileName);
System.out.println(" :"+fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
public static DbManager getInstance() {
return manager;
}
public Connection getConnection() {
Connection connection = null;
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
connection = DriverManager.getConnection("proxool.proxool-pool");
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
2.자신의 정의 1 JDBCappender
package com.wallimn.util;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.log4j.jdbc.JDBCAppender;
public class JDBCPoolAppender extends JDBCAppender {
public JDBCPoolAppender() {
super();
}
@Override
protected Connection getConnection() throws SQLException {
return DbManager.getInstance().getConnection();
}
}
3.LOG4J 프로필(log4j.properties)
log4j.rootLogger=ERROR,stdout
log4j.logger.SYSTEM = INFO,JDBC
#stdout configure
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %5p [%c] - %m%n
#jdbc
log4j.appender.JDBC=com.wallimn.util.JDBCPoolAppender
log4j.appender.JDBC.threshold=ERROR
\#주,이 말 은 줄 을 바 꾸 지 않 는 다.
log4j.appender.JDBC.sql=INSERT INTO XT_SYS_LOG(USERID,LOGTIME,LOGLEVEL,LOGACTION,LOGMESSAGE)
VALUES(%X{userId},sysdate,'%p','%l','%m')
\#폼 SQL 만 들 기
############################################################
#create table xt_sys_log(userid integer,
#logtime date default sysdate,
#loglevel varchar2(5),
#logaction varchar2(255),
#logmessage varchar2(2000));
############################################################
4.proxool 프로필(proxool.properties)
jdbc-0.proxool.alias=proxool-pool
jdbc-0.proxool.driver-url=jdbc:oracle:thin:@127.0.0.1:1521:swdb
jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver
jdbc-0.user=scott
jdbc-0.password=tiger
jdbc-0.proxool.house-keeping-sleep-time=40000
jdbc-0.proxool.house-keeping-test-sql=select 1 from dual
jdbc-0.proxool.minimum-connection-count=10
jdbc-0.proxool.maximum-connection-count=100
jdbc-0.proxool.maximum-connection-lifetime=600000
jdbc-0.proxool.maximum-active-time=600000
jdbc-0.proxool.simultaneous-build-throttle=20
jdbc-0.proxool.recently-started-threshold=40000
jdbc-0.proxool.overload-without-refusal-lifetime=60000
jdbc-0.proxool.verbose=true
jdbc-0.proxool.trace=true
jdbc-0.proxool.fatal-sql-exception=Fatalerror
jdbc-0.proxool.prototype-count=2
테스트 코드
package com.wallimn.test;
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import junit.framework.TestCase;
public class Log4JTest extends TestCase {
public void testLog1() {
Logger logger = Logger.getLogger("SYSTEM");
// System.out.println(Log4JTest.class);
System.out.println(" :" + logger.getAdditivity());
System.out.println(" :" + logger.getLevel());
System.out.println(" :" + logger.getEffectiveLevel());
MDC.put("userId", "11");
logger.fatal("test_fatal");
logger.error("test_Error");
logger.warn("test_warn");
logger.info("test_Info");
logger.debug("test_debug");
MDC.remove("userId");
}
}
사용 한 jar 패키지:
ojdbc14.jar
log4j-1.2.16.jar
proxool-0.9.1.jar
proxool-cglib.jar
commons-logging.jar
junit.jar
Wallimn 오리지널,글 주소:
http://wallimn.iteye.com/blog/1538173
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Boot에서 log4j 로깅 방법Spring Boot은 모든 내부 로그에 Commons Logging을 사용하지만, 기본 설정은 Java Util Logging, Log4J, Log4J2, Logback과 같은 일반적인 로그를 지원합니다.각 Log...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.