{"id":18498502,"url":"https://github.com/zircote/zend_log_writer_mongo","last_synced_at":"2025-04-09T00:31:19.963Z","repository":{"id":2133611,"uuid":"3076985","full_name":"zircote/Zend_Log_Writer_Mongo","owner":"zircote","description":"A Zend Framework Log Writer for MongoDb","archived":false,"fork":false,"pushed_at":"2013-02-19T15:10:54.000Z","size":130,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T19:45:19.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://framework.zend.com/wiki/display/ZFPROP/Zend_Log_Writer_MongoDb+-+Robert+Allen","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zircote.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-12-30T22:16:04.000Z","updated_at":"2018-02-06T06:43:01.000Z","dependencies_parsed_at":"2022-08-27T10:12:16.404Z","dependency_job_id":null,"html_url":"https://github.com/zircote/Zend_Log_Writer_Mongo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2FZend_Log_Writer_Mongo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2FZend_Log_Writer_Mongo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2FZend_Log_Writer_Mongo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2FZend_Log_Writer_Mongo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zircote","download_url":"https://codeload.github.com/zircote/Zend_Log_Writer_Mongo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247949889,"owners_count":21023410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T13:40:49.700Z","updated_at":"2025-04-09T00:31:18.748Z","avatar_url":"https://github.com/zircote.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zend_Log_Writer_MongoDb\n\n### Uses\n\n```php\nresources.log.mongo.writerName = \"MongoDb\"\nresources.log.mongo.writerParams.database = \"pincrowd\"\nresources.log.mongo.writerParams.collection = \"logging\"\nresources.log.mongo.writerParams.documentMap.timestamp = 'timestamp'\nresources.log.mongo.writerParams.documentMap.message = 'message'\nresources.log.mongo.writerParams.documentMap.priority = 'priority'\nresources.log.mongo.writerParams.documentMap.priorityName = 'priorityName'\nresources.log.mongo.writerParams.documentMap.hostname = 'hostname'\nresources.log.mongo.filterName = \"Priority\"\nresources.log.mongo.filterParams.priority = 5\n\n\u003c?php\nif($bootstrap-\u003ehasResource('log')){\n    $log = $bootstrap-\u003egetResource('log');\n    $log-\u003einfo('log me');\n}\n```\n\n### Full config via `Zend_Log::factory`\n\n```php\n\u003c?php\n$logger = Zend_Log::factory(\n    array(\n        'timestampFormat' =\u003e 'Y-m-d',\n        array(\n            'writerName' =\u003e 'MongoDb',\n            'writerParams' =\u003e array(\n                'server' =\u003e 'mongodb://somehost.mongolab.com:27017',\n                'collection' =\u003e 'logging',\n                'database' =\u003e 'zend_log',\n                'options' =\u003e array(\n                    'username' =\u003e 'zircote-dev',\n                    'password' =\u003e 'somepassword',\n                    'connect' =\u003e true,\n                    'timeout' =\u003e 200,\n                    'replicaSet' =\u003e 'repset1',\n                    'db' =\u003e 'zend_log'\n                )\n            )\n        )\n    )\n);\n$logger-\u003ecrit(__METHOD__);\n```\n\n### Extended config via `Zend_Log_Writer_MongoDb::factory`\n\n```php\n\u003c?php\n$config = array(\n    'server' =\u003e 'mongodb://somehost.mongolab.com:27017',\n    'collection' =\u003e 'logging',\n    'database' =\u003e 'zend_log',\n    'options' =\u003e array(\n        'username' =\u003e 'zircote-dev',\n        'password' =\u003e 'somepassword',\n        'connect' =\u003e true,\n        'timeout' =\u003e 200,\n        'replicaSet' =\u003e 'repset1',\n        'db' =\u003e 'zend_log')\n);\n$log = new Zend_log();\n$log-\u003eaddWriter(Zend_Log_Writer_MongoDb::factory($config));\n$log-\u003einfo('this is a test ' . __METHOD__);\n```\n\n### Using the Writer Factory Method:\n\n```php\n\u003c?php\n$config = array(\n    'collection' =\u003e 'log',\n    'database' =\u003e 'pincrowd'\n);\n$writer = Zend_Log_Writer_MongoDb::factory($config);\n$log = new Zend_log();\n$log-\u003eaddWriter($writer);\n$log-\u003einfo('this is a test');\n```\n\n### Using a MongoCollection Object\n\n```php\n\u003c?php\n$mongo = new MongoDb();\n$collection = $mongo-\u003eselectDB('logging')\n    -\u003eselectCollection('logCollection');\n$log = new Zend_log();\n$writer = new Zend_Log_Writer_MongoDb($collection);\n$log-\u003eaddWriter($writer);\n$log-\u003eerr(__METHOD__);\n```\n\n### An Example Logged Document\n\n```javascript\n\n{\n    \"_id\" : ObjectId(\"4f5fa1546be132029900009e\"),\n    \"timestamp\" : ISODate(\"2012-03-13T19:34:44Z\"),\n    \"message\" : \"this is a test 27\",\n    \"priority\" : 3,\n    \"priorityName\" : \"ERR\",\n    \"hostname\" : \"zircote-mbp-4.local\"\n}\n\n\n```\n\n### A Tailing cursor\n\n```php\n\u003c?php\n$mongo = new Mongo();\n$db = $mongo-\u003eselectDB('logging');\n$collection = $db-\u003eselectCollection('logCollection');\n$cursor = $collection-\u003efind()-\u003etailable(true);\nwhile (true) {\n    if ($cursor-\u003ehasNext()) {\n        $doc = $cursor-\u003egetNext();\n        echo date(DATE_ISO8601, $doc['timestamp']-\u003esec), ' ',$doc['priorityName'],' ', $doc['message'], PHP_EOL;\n    } else {\n        usleep(500);\n    }\n}\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fzend_log_writer_mongo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzircote%2Fzend_log_writer_mongo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fzend_log_writer_mongo/lists"}