diff --git a/.versions b/.versions index dc39bae..767e47c 100644 --- a/.versions +++ b/.versions @@ -1,50 +1,50 @@ -allow-deny@1.0.3 -babel-compiler@6.6.1 -babel-runtime@0.1.7 -base64@1.0.7 -binary-heap@1.0.7 -blaze@2.1.6 -blaze-tools@1.0.7 -boilerplate-generator@1.0.7 -caching-compiler@1.0.3 -callback-hook@1.0.7 -check@1.1.3 -coffeescript@1.0.16 -ddp@1.2.4 -ddp-client@1.2.4 -ddp-common@1.2.4 -ddp-server@1.2.5 -deps@1.0.11 -diff-sequence@1.0.4 -ecmascript@0.4.2 -ecmascript-runtime@0.2.9 -ejson@1.0.10 -geojson-utils@1.0.7 -html-tools@1.0.8 -htmljs@1.0.8 -id-map@1.0.6 -jquery@1.11.7 -logging@1.0.11 -meteor@1.1.13 -minimongo@1.0.13 -modules@0.5.2 -modules-runtime@0.6.2 -mongo@1.1.6 -mongo-id@1.0.3 -npm-mongo@1.4.42 -observe-sequence@1.0.10 -ordered-dict@1.0.6 -ostrio:logger@1.1.0 -ostrio:loggermongo@1.1.0 -promise@0.6.6 -random@1.0.8 -reactive-var@1.0.8 -retry@1.0.6 -routepolicy@1.0.9 -spacebars@1.0.10 -spacebars-compiler@1.0.10 -tracker@1.0.12 -ui@1.0.10 -underscore@1.0.7 -webapp@1.2.7 -webapp-hashing@1.0.8 +allow-deny@1.0.4 +babel-compiler@6.6.4 +babel-runtime@0.1.8 +base64@1.0.8 +binary-heap@1.0.8 +blaze@2.1.7 +blaze-tools@1.0.8 +boilerplate-generator@1.0.8 +caching-compiler@1.0.4 +callback-hook@1.0.8 +check@1.2.1 +coffeescript@1.0.17 +ddp@1.2.5 +ddp-client@1.2.7 +ddp-common@1.2.5 +ddp-server@1.2.6 +deps@1.0.12 +diff-sequence@1.0.5 +ecmascript@0.4.3 +ecmascript-runtime@0.2.10 +ejson@1.0.11 +geojson-utils@1.0.8 +html-tools@1.0.9 +htmljs@1.0.9 +id-map@1.0.7 +jquery@1.11.8 +logging@1.0.12 +meteor@1.1.14 +minimongo@1.0.16 +modules@0.6.1 +modules-runtime@0.6.3 +mongo@1.1.7 +mongo-id@1.0.4 +npm-mongo@1.4.43 +observe-sequence@1.0.11 +ordered-dict@1.0.7 +ostrio:logger@1.1.1 +ostrio:loggermongo@1.1.1 +promise@0.6.7 +random@1.0.9 +reactive-var@1.0.9 +retry@1.0.7 +routepolicy@1.0.10 +spacebars@1.0.11 +spacebars-compiler@1.0.11 +tracker@1.0.13 +ui@1.0.11 +underscore@1.0.8 +webapp@1.2.8 +webapp-hashing@1.0.9 diff --git a/README.md b/README.md index 075fb7c..d7f2cd4 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ Logging: To MongoDB ======== -Store application logs into MongoDB within [ostrio:logger](https://atmospherejs.com/ostrio/logger) package. +Store application log messages in MongoDB. -*Whenever you log message(s) on client or sever, it goes directly to MongoDB.* +*Whenever you log message(s) on Client or Sever, it goes directly into MongoDB.* Installation: ======== @@ -11,6 +11,13 @@ meteor add ostrio:logger # If not yet installed meteor add ostrio:loggermongo ``` +Support this awesome package: +======== + - Star on [GitHub](https://github.com/VeliovGroup/Meteor-logger-mongo) + - Star on [Atmosphere](https://atmospherejs.com/ostrio/loggermongo) + - [Tweet](https://twitter.com/share?url=https://github.com/VeliovGroup/Meteor-logger-mongo&text=Store%20%23meteorjs%20log%20messages%20(from%20Client%20%26%20Server)%20in%20MongoDB%20%23javascript%20%23programming%20%23webdev%20via%20%40VeliovGroup) + - Share on [Facebook](https://www.facebook.com/sharer.php?u=https://github.com/VeliovGroup/Meteor-logger-mongo) + Usage ======== ##### Initialization [*Isomorphic*] @@ -21,16 +28,19 @@ Usage Example: ```javascript -this.Log = new Logger(); -var LogMongo = new LoggerMongo(Log, { +this.log = new Logger(); // Initialize Logger +// Initialize LoggerMongo: +var LogMongo = new LoggerMongo(log, { collectionName: 'AppLogs' /* Use custom collection name */ }); + +LogMongo.enable(); // Enable LoggerMongo with default settings ``` -##### Activate and set adapter settings [*Isomorphic*] +##### Activate and set adapter settings: [*Isomorphic*] ```javascript -this.Log = new Logger(); -new LoggerMongo(Log, {}).enable({ +this.log = new Logger(); +new LoggerMongo(log, {}).enable({ enable: true, filter: ['ERROR', 'FATAL', 'WARN'], /* Filters: 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', 'TRACE', '*' */ client: false, /* This allows to call, but not execute on Client */ @@ -65,8 +75,8 @@ new LoggerMongo(Log, {}).enable({ ##### Set custom indexes on collection: Read more at: [ensureIndex docs](https://docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/) ```javascript -this.Log = new Logger(); -var LogMongo = new LoggerMongo(Log, { +this.log = new Logger(); +var LogMongo = new LoggerMongo(log, { collectionName: 'AppLogs' /* Use custom collection name */ }); @@ -78,38 +88,51 @@ if (Meteor.isServer) { } ``` -##### Log [*Isomorphic*] +##### Log message: [*Isomorphic*] ```javascript -this.Log = new Logger(); -new LoggerMongo(Log).enable(); +this.log = new Logger(); +new LoggerMongo(log).enable(); /* message {String} - Any text message data {Object} - [optional] Any additional info as object userId {String} - [optional] Current user id */ -Log.info(message, data, userId); -Log.debug(message, data, userId); -Log.error(message, data, userId); -Log.fatal(message, data, userId); -Log.warn(message, data, userId); -Log.trace(message, data, userId); -Log._(message, data, userId); //--> Shortcut for logging without message, e.g.: simple plain log +log.info(message, data, userId); +log.debug(message, data, userId); +log.error(message, data, userId); +log.fatal(message, data, userId); +log.warn(message, data, userId); +log.trace(message, data, userId); +log._(message, data, userId); //--> Plain log without level /* Use with throw */ -throw Log.error(message, data, userId); +throw log.error(message, data, userId); +``` + +##### Catch-all Client's errors example: [*CLIENT*] +```javascript +/* Store original window.onerror */ +var _WoE = window.onerror; + +window.onerror = function(msg, url, line) { + log.error(msg, {file: url, onLine: line}); + if (_WoE) { + _WoE.apply(this, arguments); + } +}; ``` ##### Use multiple logger(s) with different settings: ```javascript -this.Log1 = new Logger(); -this.Log2 = new Logger(); +this.log1 = new Logger(); +this.log2 = new Logger(); /* * Separate settings and collection * for info, debug and other messages */ -new LoggerMongo(Log1, { +new LoggerMongo(log1, { collectionName: 'AppLogs' }).enable({ filter: ['DEBUG', 'INFO', 'LOG', 'TRACE'], @@ -121,7 +144,7 @@ new LoggerMongo(Log1, { * Separate settings and collection * for errors, exceptions, warnings and etc. */ -new LoggerMongo(Log2, { +new LoggerMongo(log2, { collectionName: 'AppErrors' }).enable({ filter: ['ERROR', 'FATAL', 'WARN'], diff --git a/loggermongo.coffee b/loggermongo.coffee index 891c166..e7f31a0 100755 --- a/loggermongo.coffee +++ b/loggermongo.coffee @@ -1,5 +1,9 @@ NOOP = -> return +### +@class LoggerMongo +@summary MongoDB adapter for ostrio:logger (Logger) +### class LoggerMongo constructor: (@logger, @options = {}) -> check @logger, Match.OneOf Logger, Object diff --git a/package.js b/package.js index bb87fd4..3d77cbe 100755 --- a/package.js +++ b/package.js @@ -1,7 +1,7 @@ Package.describe({ name: 'ostrio:loggermongo', - version: '1.1.0', - summary: 'Logging: Store application logs in MongoDB', + version: '1.1.1', + summary: 'Logging: Store application log messages into MongoDB (Server & Client support)', git: 'https://github.com/VeliovGroup/Meteor-logger-mongo', documentation: 'README.md' }); @@ -9,7 +9,7 @@ Package.describe({ Package.onUse(function(api) { api.versionsFrom('1.0'); api.use('mongo', 'server'); - api.use(['ostrio:logger@1.1.0', 'coffeescript'], ['client', 'server']); + api.use(['ostrio:logger@1.1.1', 'coffeescript', 'check', 'underscore'], ['client', 'server']); api.addFiles('loggermongo.coffee', ['client', 'server']); api.export('LoggerMongo'); });