2015-04-02 67 views
0

我想將日誌插入到日誌表中。和設定運算log4j.properties:log4j日誌到mysql表

log4j.rootLogger = DEBUG, DB 
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.DB.URL=jdbc:mysql://localhost/test 
log4j.appender.DB.driver=com.mysql.jdbc.Driver 
log4j.appender.DB.user=admin 
log4j.appender.DB.password=admin 
log4j.appender.DB.sql=INSERT INTO logs_2 (log) VALUES('%t') 
log4j.appender.DB.layout=org.apache.log4j.PatternLayout 

和我也曾嘗試

INSERT INTO logs_2 (log) VALUES(''%t'') 
INSERT INTO logs_2 (log) VALUES('this is an example log ') 
INSERT INTO 'logs_2' (log) VALUES('this is an example log') 

表定義:

CREATE TABLE `logs_2` (
    `id` int(6) unsigned NOT NULL AUTO_INCREMENT, 
    `log` varchar(200) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB 

DEFAULT CHARSET=utf8 | 

和結果:MySQL的> ....命令行...

MariaDB [test]> select * from logs_2; 
Empty set (0.00 sec) 

scrip有什麼問題PT?

+0

相同的配置工作WEL的Windows Server + MYSQL + Log4j和對未在CentOS 7 + MYSQL + LOG4J – ASA 2015-04-07 10:22:37

+0

嗨,也許你可以嘗試使用%m代替%t – lookfire 2015-04-13 11:55:07

回答

0
  • 檢查用戶在MYSQl中的權限。
0

請檢查您的log4j.properties文件路徑

PropertyConfigurator.configure("src/main/resources/log4j.properties"); 

如果您使用log4x.xml使用這條線。我有這個錯誤log4j.xml

log4j:警告沒有appender可以發現記錄器(包名)。

log4j:WARN請正確初始化log4j系統。

log4j:WARN有關更多信息,請參見http://logging.apache.org/log4j/1.2/faq.html#noconfig

DOMConfigurator.configure("src/main/resources/log4j.xml"); 

創建表

CREATE TABLE LOGS 
    (USER_ID VARCHAR(30) NOT NULL, 
    LOG_DATE DATE   NOT NULL, 
    LOGGER VARCHAR(45) NOT NULL, 
    LEVEL VARCHAR(12) NOT NULL, 
    MESSAGE VARCHAR(1000) NOT NULL 
    ); 

    import org.apache.log4j.Logger; 
    import org.apache.log4j.PropertyConfigurator; 

    public class TestMain { 
     static Logger log = Logger.getLogger(TestMain.class); 
     public static void main(String[] args) { 
      PropertyConfigurator.configure("src/main/resources/log4j.properties"); 
      log.debug("Test debug"); 
      log.info("Test info"); 
     } 
    } 

log4j.properties

# Define the root logger with appender file 
log4j.rootLogger = DEBUG, DB 

# Define the DB appender 
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 

# Set JDBC URL 
log4j.appender.DB.URL=jdbc:mysql://localhost:3306/TestDatabaseName 

# Set Database Driver 
log4j.appender.DB.driver=com.mysql.jdbc.Driver 

# Set database user name and password 
log4j.appender.DB.user=myuser 
log4j.appender.DB.password=mypassword 

# Set the SQL statement to be executed. 
log4j.appender.DB.sql=INSERT INTO LOGS(USER_ID,LOG_DATE,LOGGER, LEVEL, MESSAGE) VALUES('%x',now(),'%C','%p','%m') 

# Define the layout for file appender 
log4j.appender.DB.layout=org.apache.log4j.PatternLayout