Logging: To File
Simply store application logs into file within ostrio:logger package
Whenever you log message(s) on client or sever, it goes directly to log-file on your server.
Installation:
meteor add ostrio:logger # If not yet installed meteor add ostrio:loggerfile
Usage
Initialization [Isomorphic]
new LoggerFile(LoggerInstance, options)
LoggerInstance
{Logger} - fromnew Logger()
options
{Object}options.fileNameFormat
{Function} - Log file name, use to adjust file creation frequency, arguments:time
{Date}
options.format
{Function} - Log record format, arguments:time
{Date}level
{String} - 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO'message
{String}data
{Object}userId
{String} - set if user is logged in and packageaccounts-base
is installed- Note: Do not forget
\r\n
at the end of record-line
path
{String} - Log's storage path, absolute, or relative to NodeJS process, note: do not use '~' (path relative to user)!
Example:
1this.Log = new Logger(); 2var LogFile = new LoggerFile(Log, { 3 fileNameFormat: function(time) { 4 /* Create log-files hourly */ 5 return (time.getDate()) + "-" + (time.getMonth() + 1) + "-" + (time.getFullYear()) + "_" + (time.getHours()) + ".log"; 6 }, 7 format: function(time, level, message, data, userId) { 8 /* Omit Date and hours from messages */ 9 return "[" + level + "] | " + (time.getMinutes()) + ":" + (time.getSeconds()) + " | \"" + message + "\" | User: " + userId + "\r\n"; 10 }, 11 path: '/data/logs/' /* Use absolute storage path */ 12});
Activate and set adapter settings [Isomorphic]
1this.Log = new Logger(); 2new LoggerFile(Log, {}).enable({ 3 enable: true, 4 filter: ['ERROR', 'FATAL', 'WARN'], /* Filters: 'ERROR', 'FATAL', 'WARN', 'DEBUG', 'INFO', 'TRACE', '*' */ 5 client: false, /* This allows to call, but not execute on Client */ 6 server: true /* Calls from client will be executed on Server */ 7});
Log [Isomorphic]
1this.Log = new Logger(); 2new LoggerFile(Log).enable(); 3 4/* 5 message {String} - Any text message 6 data {Object} - [optional] Any additional info as object 7 userId {String} - [optional] Current user id 8 */ 9Log.info(message, data, userId); 10Log.debug(message, data, userId); 11Log.error(message, data, userId); 12Log.fatal(message, data, userId); 13Log.warn(message, data, userId); 14Log.trace(message, data, userId); 15Log._(message, data, userId); //--> Shortcut for logging without message, e.g.: simple plain log 16 17/* Use with throw */ 18throw Log.error(message, data, userId);
Use multiple logger(s) with different settings:
1this.Log1 = new Logger(); 2this.Log2 = new Logger(); 3 4new LoggerFile(Log1).enable({ 5 client: false, 6 server: true 7}); 8 9new LoggerFile(Log2, { 10 fileNameFormat: function(time) { 11 return (time.getDate()) + "-" + (time.getMonth() + 1) + "-" + (time.getFullYear()) + "_" + (time.getHours()) + ".log"; 12 }, 13 format: function(time, level, message, data, userId) { 14 return "[" + level + "] | " + (time.getMinutes()) + ":" + (time.getSeconds()) + " | \"" + message + "\" | User: " + userId + "\r\n"; 15 }, 16 path: '/data/logs/' 17}).enable({ 18 client: false, 19 server: true 20});