Java Log4J阻止HTTPClient登录到MySQL

Java Log4J阻止HTTPClient登录到MySQL,java,log4j,Java,Log4j,我正在使用org.apache.http.client库,这有一些默认日志记录。我还设置了log4j来处理我的常规日志和http客户端日志 我的问题是,我不希望http客户端登录到MySQL数据库 以下是log4j的属性文件: #定义控制台附加程序 log4j.appender.consoleAppender=org.apache.log4j.consoleAppender # now define the layout for the appender log4j.appender.conso

我正在使用org.apache.http.client库,这有一些默认日志记录。我还设置了log4j来处理我的常规日志和http客户端日志

我的问题是,我不希望http客户端登录到MySQL数据库

以下是log4j的属性文件: #定义控制台附加程序 log4j.appender.consoleAppender=org.apache.log4j.consoleAppender

# now define the layout for the appender
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern==%d{yyyy MM dd HH:mm:ss} %p %t %c - %m%n

# now map our console appender as a root logger, means all log messages will go to this appender
log4j.rootLogger = DEBUG, debugTrack, DB
log4j.logger.org.apache=DEBUG, debugTrack, DB
log4j.logger.infoLogger=INFO, infoTrack, DB
log4j.logger.org.apache.http=httpcomm
log4j.logger.org.apache.http.wire=httpcomm

log4j.additivity.org.apache=false
log4j.additivity.infoLogger=false

log4j.appender.debugTrack=org.apache.log4j.RollingFileAppender
log4j.appender.debugTrack.Threshold=DEBUG
log4j.appender.debugTrack.File=log//debugTrack.log
log4j.appender.debugTrack.MaxFileSize=2MB
log4j.appender.debugTrack.MaxBackupIndex=2
log4j.appender.debugTrack.layout = org.apache.log4j.PatternLayout
log4j.appender.debugTrack.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss} %p %t %c - %m%n

log4j.appender.infoTrack=org.apache.log4j.RollingFileAppender
log4j.appender.infoTrack.Threshold=INFO
log4j.appender.infoTrack.File=log//infoTrack.log
log4j.appender.infoTrack.MaxFileSize=2MB
log4j.appender.infoTrack.MaxBackupIndex=2
log4j.appender.infoTrack.layout = org.apache.log4j.PatternLayout
log4j.appender.infoTrack.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss} %p %t %c - %m%n

log4j.appender.httpcomm=org.apache.log4j.RollingFileAppender
log4j.appender.httpcomm.Threshold=DEBUG
log4j.appender.httpcomm.File=log//HTTPCommunication.log
log4j.appender.httpcomm.MaxFileSize=2MB
log4j.appender.httpcomm.MaxBackupIndex=2
log4j.appender.httpcomm.layout=org.apache.log4j.PatternLayout
log4j.appender.httpcomm.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss} %p %t %c - %m%n

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.URL=jdbc:mysql://server/database
log4j.appender.DB.driver=com.mysql.jdbc.Driver
log4j.appender.DB.user=root
log4j.appender.DB.password=********
log4j.appender.DB.sql=INSERT INTO tbl_logs(logDate,logger,level,message) VALUES('%d{yyyy-MM-dd HH:mm:ss}','%C','%p','%m')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
有一个信息记录器和一个调试记录器,我希望继续记录到文件和数据库中。我还希望将HTTP客户端记录到文件中,而不是数据库中

有人能为我指出实现这一目标的正确方向吗

非常感谢
Nathan

您已将父包的
可加性设置为
false
,这意味着不会从父包传播任何内容。要为
log4j.logger.org.apache.http
包获取此行为,还需要设置:

log4j.additivity.org.apache=false
log4j.additivity.org.apache.http=false
log4j.additivity.infoLogger=false

还要注意的是,不需要同时指定
log4j.logger.org.apache.http
log4j.logger.org.apache.http.wire
,第一个应该涵盖这两个方面。

好的,感谢您的输入,这是有意义的,我已经做了更改。但是,我没有收到以下消息:log4j:WARN找不到记录器(org.apache.http.impl.conn.BasicClientConnectionManager)的附加程序。log4j:警告请正确初始化log4j系统。关于这一点有什么想法吗?现在我接受了答案-我通过确保正确定义了附加器,解决了以前的问题。我做了一些其他不需要的改变。谢谢你的帮助。