Log4j +Mongodb整合 记录日志

本文介绍如何将Log4j与MongoDB集成用于日志记录,并提供了详细的配置步骤及示例代码。通过两种不同的配置方式,展示了如何将日志信息存储到MongoDB中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


准备工作:

log4j、log4mongo、mongo-java-driver jar包 http://download.youkuaiyun.com/detail/dingsai88/8461289

                                                                                   2:http://download.youkuaiyun.com/detail/dingsai88/8990569

mongodb可视化工具  http://download.youkuaiyun.com/detail/dingsai88/8461277



web.xml

  <context-param>
        <param-name>log4jConfigLocation</param-name>  
        <param-value>/WEB-INF/log4j.properties</param-value>  
  </context-param>
  

log4j.properties


#####################  mongodb

##可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,Log4j建议只使用中间四个级别。
##stdout,MongoDB  :就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。 
log4j.rootLogger=INFO,stdout,MongoDB    
log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
##Mongodb数据库
log4j.appender.MongoDB.databaseName=logs 
##表
log4j.appender.MongoDB.collectionName=log
##服务器
log4j.appender.MongoDB.hostname=192.168.1.33
log4j.appender.MongoDB.port=27017 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

 ##################### 输出格式
 
log4j.logger.com.cnblogs.leefreeman.servlet=INFO,action
log4j.appender.action.Threshold = INFO
log4j.appender.action=org.apache.log4j.DailyRollingFileAppender
log4j.appender.action.encoding=utf8
log4j.appender.action.File=/opt/logs/action.log
log4j.appender.action.DatePattern  =  '_'yyyy-MM-dd'.log'
log4j.appender.action.layout=org.apache.log4j.PatternLayout
log4j.appender.action.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n



 


java调用:

	   Logger logger = Logger.getLogger(LoginController.class);
           logger.info("{username:'关云长',password:'西瓜开门'}");


 


Mongodb存储样式:


/* 1 */
{
  "_id" : {
    "$oid" : "54f035424f16152392ec1ab9"
  },
  "timestamp" : {
    "$date" : 1425028418229
  },
  "level" : "INFO",
  "thread" : "http-80-1",
  "message" : "{username:'admin',password:'admin'}",
  "loggerName" : {
    "fullyQualifiedClassName" : "com.ding.controller.LoginController",
    "package" : ["com", "ding", "controller", "LoginController"],
    "className" : "LoginController"
  },
  "fileName" : "LoginController.java",
  "method" : "login",
  "lineNumber" : "47",
  "class" : {
    "fullyQualifiedClassName" : "com.ding.controller.LoginController",
    "package" : ["com", "ding", "controller", "LoginController"],
    "className" : "LoginController"
  },
  "host" : {
    "process" : "4368@dell-7e224dbd05",
    "name" : "dell-7e224dbd05",
    "ip" : "192.168.1.24"
  }
}



调用方式2:


#####################  mongodb
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
##mongodb config
log4j.logger.MongoDB=INFO,MongoDB
log4j.appender.MongoDB=org.log4mongo.MongoDbPatternLayoutAppender
log4j.appender.MongoDB.Threshold=INFO
log4j.appender.MongoDB.databaseName=applog
log4j.appender.MongoDB.collectionName=appCallLog
log4j.appender.MongoDB.hostname=10.119.18.11
log4j.appender.MongoDB.port=27017
log4j.appender.MongoDB.layout=org.log4mongo.MongoDbPatternLayout

		Logger mongodb = Logger.getLogger("MongoDB");
				System.out.println(TAG + "记录日志");
				mongodb.info("{name:\"shaoxia\"}");




Log4j配置:

http://www.open-open.com/lib/view/open1393488356958.html


参考资料:

http://www.cnblogs.com/leefreeman/p/3610459.html










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingsai88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值