Node File Logger
A simple logger for logging exceptions and error details in a log file.
_ _ _ _____ _ _ _
| \ | | ___ __| | ___ | ___(_) | ___ | | ___ __ _ __ _ ___ _ __
| \| |/ _ \ / _` |/ _ \ | |_ | | |/ _ \ | | / _ \ / _` |/ _` |/ _ \ '__|
| |\ | (_) | (_| | __/ | _| | | | __/ | |__| (_) | (_| | (_| | __/ |
|_| \_|\___/ \__,_|\___| |_| |_|_|\___| |_____\___/ \__, |\__, |\___|_|
|___/ |___/
Docs & Features
Dependencies
moment.js moment-timezone.js node-stringify.js
Suports all logging levels
- DEBUG: The DEBUG Level designates fine-grained informational events that are most useful to debug an application.
- TRACE: The TRACE Level designates finer-grained informational events than the DEBUG
- INFO: The INFO level designates informational messages that highlight the progress of the application at coarse-grained level.
- WARN: The WARN level designates potentially harmful situations.
- ERROR: The ERROR level designates error events that might still allow the application to continue running.
- FATAL: The FATAL level designates very severe error events that will presumably lead the application to abort.
Create date-wise log files
It has an option to create a new log file for the current date which will be named like YYYY-MM-DD-log.log
Extras
- Allows logging the service name & method name
- Allows logging a short error message and an entire error object (optional)
- Error objects are stringified and then logged to the log file
Has a callback
It allows you to run a callback after the logging process.
Steps to use
Installation
npm install node-file-logger --save
Create instance of Node file logger
// Ceate an instance of node file loggerconst log = ;log; // Options are optional
Using options
// It is recommended to set options in a separate module and include it in the code// Everything in the example below are default valuesconst options = timeZone: 'America/Los_Angeles' folderPath: './logs/' dateBasedFileNaming: true // Required only if dateBasedFileNaming is set to false fileName: 'All_Logs' // Required only if dateBasedFileNaming is set to true fileNamePrefix: 'Logs_' fileNameSuffix: '' fileNameExtension: '.log' dateFormat: 'YYYY-MM-DD' timeFormat: 'HH:mm:ss.SSS' logLevel: 'debug' onlyFileLogging: true // Note: If you set dateBasedFileNaming to false, then a log file will be created at the folder path with the provided fileName.// If set to true then a logfile will be created with the name <fileName> provided in the options log;
Examples
Simple logging to a file with date-based log file naming
const options = folderPath: './logs/' dateBasedFileNaming: true fileNamePrefix: 'DailyLogs_' fileNameExtension: '.log' dateFormat: 'YYYY_MM_D' timeFormat: 'h:mm:ss A' const log = ;log; // Log a simple error messagelog; // *****************************************************// Ouput in Logfile: // File name : ./logs/Logs_2018_02_23.log// 5:52:28 PM | Info | Some informational log message// ***************************************************** // Log an error message with service and method nameslog; // *****************************************************// Ouput in Logfile: // File name : ./logs/Logs_2018_02_23.log// 5:52:28 PM | Error | Service: Some service | Method: Some method | Some error message// ***************************************************** // Log an fatal error message with service and method names and error objectlog; // *****************************************************// Ouput in Logfile: // File name : ./logs/Logs_2018_02_23.log// 5:52:28 PM | Fatal | Service: Some service | Method: Some method | Something is broken unhandledException: Something serious has happened// ***************************************************** // Log an error message with callbacklog;
Simple logging to a file without date-based file naming
const options = folderPath: './logs/' dateBasedFileNaming: false fileName: 'All_Logs.log' dateFormat: 'YYYY_MM_D' timeFormat: 'h:mm:ss A' const log = ;log; // Log a simple error messagelog; // *****************************************************// Ouput in Logfile: // File name : ./logs/All_Logs.log// 2018_02_23 5:52:28 PM | Info | Some informational log message// *****************************************************
API Reference
Methods:
SetUserOptions()
Sets user options for node file logger
Parameter | Description | Datatype | Optional |
---|---|---|---|
object | Configuration Object | object | no |
Details of the configuration object
Parameter | Description | Datatype | Default Value |
---|---|---|---|
folderPath | Path of the folder where log file will be saved | string | ./logs/ |
dateBasedFileNaming | If set to true, date based file naming standard will be followed for log file | boolean | true |
fileName | Needed in case of single log file, where dateBasedFileNaming is set to false | string | All_Logs |
fileNamePrefix | Log file name prefix | string | Logs_ |
fileNameSuffix | Log file name suffix | string | '' |
fileNameExtension | Log file name extension | string | .log |
dateFormat | Date format for timestamp logging | string | YYYY-MM-DD |
timeFormat | Time format for timestamp logging | string | HH:mm:ss.SSS |
logLevel | Allowed values - debug, prod, prod-trace (Details below) | string | debug |
onlyFileLogging | If set to false then messages are logged to console as well | boolean | true |
Details of log levels
'prod' and 'prod-trace' levels are suitable for production releases
Log level name | Description |
---|---|
debug | All log level messages are logged |
prod | Only 'warn', 'info', 'error' and 'fatal' messages are logged. 'debug' and 'trace' messages are not logged. |
prod-trace | Only 'debug' messages are not logged. All the others are logged. |
Debug()
Logs a debug message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Trace()
Logs a trace message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Info()
Logs a informational message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Warn()
Logs a warning message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Error()
Logs a error message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Fatal()
Logs a fatal error message in the log file
Parameter | Description | Datatype | Optional |
---|---|---|---|
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
Log()
Used to log any kind of log message in the log file (Custom Log level)
Parameter | Description | Datatype | Optional |
---|---|---|---|
logLevel | _Log level - 'debug', 'trace', 'info', 'warn', 'error', 'fatal', on any custom log level _ | string | no |
errorMessage | Error message to be logged in the file | string | no |
serviceName | Service name from which info was logged | string | yes |
methodName | Method name from which info was logged | string | yes |
errorObj | Error object that needs to be logged | object | yes |
callback | Callback method that is called after error logging (may return an error) | function | yes |
License
Apache 2.0