17
A
回答
30
放開。如果你正在尋找一個數據庫的appender不僅有效,而且還支持連接池,是維護和妥善記錄,比考慮logback的DBAppender。
諷刺的是,在有關的log4j的未來版本中移除JDBCAppender的javadoc的警告是我寫的。
11
您可以使用alternative附加目的地,但真正的Log4j 1.2將是各地的標準時間長。他們開發DBAppender作爲他們的接收器的同伴,這是沒有正式發佈的一部分,但是你可以下載源代碼,讓你自己去爲好。
除非不記錄異常的問題困擾你,JDBCAppender就好了。任何進一步升級到2.0都會比改變JDBCAppender(如果2.0發生)更激進,所以我不會擔心使用它,儘管有警告。他們顯然沒有一個堅實的路線圖或時間表,以引入新的版本,和1.2.15於2007年
0
**log4j.properties file**
# 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/log
# Set Database Driver
log4j.appender.DB.driver=com.mysql.jdbc.Driver
# Set database user name and password
log4j.appender.DB.user=root
log4j.appender.DB.password=root
# Set the SQL statement to be executed.
log4j.appender.DB.sql=INSERT INTO actionlg(user_id, dated, logger, level, message) values('%X{userId}',' %d{yyyy-MM-dd-HH-mm}','%C','%p','%m')
# Define the layout for file appender
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
**Java Class**
Log4jExamples.java
import java.sql.*;
import java.io.*;
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
public class Log4jExample {
/* Get actual class name to be printed on */
static Logger log = Logger.getLogger(Log4jExample.class.getName());
public static void main(String[] args)throws IOException,SQLException{
log.error("Error");
MDC.put("userId", "1234");
}
}
**libs required**
- mysql-connector-java-3.1.8-bin.jar
- log4j-1.2.17.jar
相關問題
- 1. 使log4j登錄UTC
- 2. 登錄Java Web Start的使用log4j的
- 3. log4j的:滾動登錄到使用TimeBasedRollingPolicy
- 4. 用log4j登錄stackoverflow錯誤
- 5. 持久登錄log4j
- 6. 火花使用log4j登錄到HDFS
- 7. 的Log4j JDBCAppender登錄蹤跡
- 8. 登錄到S3的Log4j appenders
- 9. Log4j突然停止登錄
- 10. Log4j 1.2未登錄到RollingFileAppender
- 11. 安卓log4j多次登錄
- 12. 從jsf網頁應用登錄log4j
- 13. log4j沒有用websphere登錄AIX
- 14. 登錄與log4j的或log4net的
- 15. Log4j 2登錄錯誤的appender
- 16. 獨立jar來登錄jboss的log4j
- 17. grails中的log4j:如何登錄文件?
- 18. 錯誤 - 無法登錄與log4j的
- 19. java log4j選擇要登錄的文件
- 20. 的Log4j沒有登錄到文件
- 21. log4j的嘗試登錄文件
- 22. 無法登錄不同的文件:Log4j
- 23. log4j的:在文件不登錄log.out
- 24. 如何配置tomcat使用log4j登錄不同的文件?
- 25. 如何使用log4j2登錄log4j的日誌
- 26. 登錄使用Apache CXF攔截和log4j的春天
- 27. 使用log4j登錄Openshift jboss時發生的問題
- 28. Log4j不會登錄到文件,只能登錄到控制檯
- 29. Log4j使用JBOSS5記錄
- 30. Log4j多個日誌文件並使用公共代碼登錄
此答案在3年後仍然有效,還有其他一些數據庫日誌框架可用嗎? – Rachel 2012-04-03 17:57:53
我可以確認它是有效的,我最近剛剛使用JDBCAppender。 – Vincent 2014-02-07 01:07:26
@Vincent我通過JDBCAppender在日誌中記錄pojo對象。我想通過日誌在數據庫中插入不同的pojo對象值。怎麼做?謝謝。 – Kumar 2014-09-12 10:45:49