Home > Database > Mysql Tutorial > MongoDB做日志服务器

MongoDB做日志服务器

WBOY
Release: 2016-06-07 14:53:58
Original
1165 people have browsed it

MongoDB做日志服务器 MongoDB 做日志服务器。 www.2cto.com 写日志最常用的方式是写入纯文本文件,然后安日期分割文件,压错旧文件。 这样的日志与对懂shell,perl语言的人分析起来非常方便,对于程序员来说还是更喜欢写入数据库服务器,然后通过sql语句查询

MongoDB做日志服务器

 

MongoDB 做日志服务器。

   www.2cto.com  

写日志最常用的方式是写入纯文本文件,然后安日期分割文件,压错旧文件。

 

这样的日志与对懂shell,perl语言的人分析起来非常方便,对于程序员来说还是更喜欢写入数据库服务器,然后通过sql语句查询。

对于程序员来说sql语句提供了丰富查询功能,相比文本文件分析更容易。

 

下面就是一个简单日志表, 尽量做到通用所以只有message。

 

MongoDB做日志服务器

 

Sql代码  

CREATE TABLE `logging` (  

    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,  

    `tag` ENUM('unknow','user','bbs','cart','admin') NOT NULL DEFAULT 'unknow' COMMENT '日志标签域',  

    `asctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '产生时间',  

    `facility` ENUM('unknow','account','bank','unionpay','sms','email','register') NOT NULL DEFAULT 'unknow' COMMENT '类别',  

    `priority` ENUM('info','warning','error','critical','exception','debug') NOT NULL DEFAULT 'debug' COMMENT '级别',  

    `message` VARCHAR(512) NOT NULL COMMENT '内容',  

    `operator` VARCHAR(50) NOT NULL DEFAULT 'computer' COMMENT '操作者',  

    PRIMARY KEY (`id`)  

)  

COMMENT='日志表'  

COLLATE='utf8_general_ci'  

ENGINE=InnoDB;  

   www.2cto.com  

 

mongodb 的message字段比起sql更灵活

 

Java代码  

db.logging.user.save({'asctime':'2012-10-10 12:12:12','facility':'register','priority':'info','operator':'computer','message':{'name':'neo','address':{'city':'shenzhen','post':518000},'phone':[13113668890,13322993040]}})  

db.logging.user.save({'asctime':'2012-10-10 12:12:12','facility':'sms','priority':'error','operator':'computer','message':'send sms: 13113668890,text: xxxxx'})  

  

db.logging.user.find()  

  

db.logging.admin.save({'asctime':'2012-10-10 12:12:12','facility':'account','priority':'info','operator':'computer','message':'delete account'})  

db.logging.admin.save({'asctime':'2012-10-10 12:12:12','facility':'sms','priority':'info','operator':'computer','message':'send sms'})  

db.logging.admin.save({'asctime':'2012-10-10 12:12:12','facility':'bank','priority':'warning','operator':'computer','message':'bank from xxxx to xxxx'})  

  

db.logging.admin.find()  

 

Java代码  

> db.logging.user.find()  

{ "_id" : ObjectId("50cc10dd3e4f5a2b92fb5f37"), "asctime" : "2012-10-10 12:12:12", "facility" : "register", "priority" : "info", "operator" : "computer", "message" : { "name" : "neo", "address" : { "city" : "shenzhen", "post" : 518000 }, "phone" : [ 13113668890, 13322993040 ] } }  

{ "_id" : ObjectId("50cc11a23e4f5a2b92fb5f39"), "asctime" : "2012-10-10 12:12:12", "facility" : "sms", "priority" : "error", "operator" : "computer", "message" : "send sms: 13113668890" }  

> db.logging.admin.find()  

{ "_id" : ObjectId("50cc11443e4f5a2b92fb5f38"), "asctime" : "2012-10-10 12:12:12", "facility" : "account", "priority" : "info", "operator" : "computer", "message" : "delete account" }  

{ "_id" : ObjectId("50cc120c3e4f5a2b92fb5f3a"), "asctime" : "2012-10-10 12:12:12", "facility" : "bank", "priority" : "warning", "operator" : "computer", "message" : "bank from xxxx to xxxx" }  

>  

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template