https://github.com/zircote/zend_log_writer_mongo
A Zend Framework Log Writer for MongoDb
https://github.com/zircote/zend_log_writer_mongo
Last synced: about 1 year ago
JSON representation
A Zend Framework Log Writer for MongoDb
- Host: GitHub
- URL: https://github.com/zircote/zend_log_writer_mongo
- Owner: zircote
- Created: 2011-12-30T22:16:04.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2013-02-19T15:10:54.000Z (over 13 years ago)
- Last Synced: 2025-03-23T19:45:19.940Z (over 1 year ago)
- Language: PHP
- Homepage: http://framework.zend.com/wiki/display/ZFPROP/Zend_Log_Writer_MongoDb+-+Robert+Allen
- Size: 127 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-2.0.txt
Awesome Lists containing this project
README
# Zend_Log_Writer_MongoDb
### Uses
```php
resources.log.mongo.writerName = "MongoDb"
resources.log.mongo.writerParams.database = "pincrowd"
resources.log.mongo.writerParams.collection = "logging"
resources.log.mongo.writerParams.documentMap.timestamp = 'timestamp'
resources.log.mongo.writerParams.documentMap.message = 'message'
resources.log.mongo.writerParams.documentMap.priority = 'priority'
resources.log.mongo.writerParams.documentMap.priorityName = 'priorityName'
resources.log.mongo.writerParams.documentMap.hostname = 'hostname'
resources.log.mongo.filterName = "Priority"
resources.log.mongo.filterParams.priority = 5
hasResource('log')){
$log = $bootstrap->getResource('log');
$log->info('log me');
}
```
### Full config via `Zend_Log::factory`
```php
'Y-m-d',
array(
'writerName' => 'MongoDb',
'writerParams' => array(
'server' => 'mongodb://somehost.mongolab.com:27017',
'collection' => 'logging',
'database' => 'zend_log',
'options' => array(
'username' => 'zircote-dev',
'password' => 'somepassword',
'connect' => true,
'timeout' => 200,
'replicaSet' => 'repset1',
'db' => 'zend_log'
)
)
)
)
);
$logger->crit(__METHOD__);
```
### Extended config via `Zend_Log_Writer_MongoDb::factory`
```php
'mongodb://somehost.mongolab.com:27017',
'collection' => 'logging',
'database' => 'zend_log',
'options' => array(
'username' => 'zircote-dev',
'password' => 'somepassword',
'connect' => true,
'timeout' => 200,
'replicaSet' => 'repset1',
'db' => 'zend_log')
);
$log = new Zend_log();
$log->addWriter(Zend_Log_Writer_MongoDb::factory($config));
$log->info('this is a test ' . __METHOD__);
```
### Using the Writer Factory Method:
```php
'log',
'database' => 'pincrowd'
);
$writer = Zend_Log_Writer_MongoDb::factory($config);
$log = new Zend_log();
$log->addWriter($writer);
$log->info('this is a test');
```
### Using a MongoCollection Object
```php
selectDB('logging')
->selectCollection('logCollection');
$log = new Zend_log();
$writer = new Zend_Log_Writer_MongoDb($collection);
$log->addWriter($writer);
$log->err(__METHOD__);
```
### An Example Logged Document
```javascript
{
"_id" : ObjectId("4f5fa1546be132029900009e"),
"timestamp" : ISODate("2012-03-13T19:34:44Z"),
"message" : "this is a test 27",
"priority" : 3,
"priorityName" : "ERR",
"hostname" : "zircote-mbp-4.local"
}
```
### A Tailing cursor
```php
selectDB('logging');
$collection = $db->selectCollection('logCollection');
$cursor = $collection->find()->tailable(true);
while (true) {
if ($cursor->hasNext()) {
$doc = $cursor->getNext();
echo date(DATE_ISO8601, $doc['timestamp']->sec), ' ',$doc['priorityName'],' ', $doc['message'], PHP_EOL;
} else {
usleep(500);
}
}
```