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. log4j的:滚动登录到使用TimeBasedRollingPolicy
- 3. 持久登录log4j
- 4. 安卓log4j多次登录
- 5. log4j没有用websphere登录AIX
- 6. 登录与log4j的或log4net的
- 7. 独立jar来登录jboss的log4j
- 8. java log4j选择要登录的文件
- 9. log4j的:在文件不登录log.out
- 10. log4j的尝试登录文件
- 11. grails中的log4j:如何登录文件?
- 12. 如何配置tomcat使用log4j登录不同的文件?
- 13. 登录使用Apache CXF拦截和log4j的春天
- 14. Log4j使用JBOSS5记录
- 15. 使用log4j对多个日志文件进行类登录
- 16. Log4j直接登录到elasticsearch服务器
- 17. 从Neo4j服务器扩展登录Log4j
- 18. 无法登录Hibernate查询log4j
- 19. java的log4j的 - 登录到这两个类别和根记录
- 20. 用Google登录使用Android登录
- 21. 使用Log4J在同一类中的不同记录器使用Log4J
- 22. 使用的log4j
- 23. 使用log4j的
- 24. 无法使用Firebase登录Facebook登录
- 25. 使用Airbnb登录或API登录
- 26. 使用PayPal登录手动登录
- 27. 模拟登录/登录使用Symfony/sfDoctrineGuardPlugin
- 28. 使用Windows 7登录SonarQube登录
- 29. CakePHP AuthComponent使用Ajax无登录登录?
- 30. 登录使用Robobrowser登录Amazon音乐
此答案在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