New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@c8/logger

Package Overview
Dependencies
Maintainers
5
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@c8/logger - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

lib/formatter.js

63

index.js
'use strict'
var base = require('./lib/transporter')
var logger = require('./lib/logger')
module.exports = require('./lib/logger')
module.exports.init = function (config) {
if (config && !config.transports) {
throw new Error('Logger: No logging transports supplied')
}
module.exports.levels = require('./lib/levels')
var debugTransports = base.levelTransports(config, 'debug')
var infoTransports = base.levelTransports(config, 'info')
var noticeTransports = base.levelTransports(config, 'notice')
var warningTransports = base.levelTransports(config, 'warning')
var errorTransports = base.levelTransports(config, 'error')
var critTransports = base.levelTransports(config, 'crit')
var alertTransports = base.levelTransports(config, 'alert')
var emergTransports = base.levelTransports(config, 'emerg')
this._debug = logger.debug(debugTransports)
this._info = logger.info(infoTransports)
this._notice = logger.notice(noticeTransports)
this._warning = logger.warning(warningTransports)
this._error = logger.error(errorTransports)
this._crit = logger.crit(critTransports)
this._alert = logger.alert(alertTransports)
this._emerg = logger.emerg(emergTransports)
}
module.exports.debug = function (msg) {
this._debug.debug(msg)
}
module.exports.info = function (msg) {
this._info.info(msg)
}
module.exports.notice = function (msg) {
this._notice.notice(msg)
}
module.exports.warning = function (msg) {
this._warning.warning(msg)
}
module.exports.error = function (msg) {
this._error.error(msg)
}
module.exports.crit = function (msg) {
this._crit.crit(msg)
}
module.exports.alert = function (msg) {
this._alert.alert(msg)
}
module.exports.emerg = function (msg) {
this._emerg.emerg(msg)
}
module.exports.log = function (level, msg) {
this[level](msg)
}
module.exports.middleware = require('./lib/middleware/')
'use strict'
var winston = require('winston')
const winston = require('winston')
winston.setLevels(winston.config.syslog.levels)
module.exports.level = function (level) {
if (isNaN(level)) {
switch (level) {
case 'debug':
return 7
case 'info':
return 6
case 'notice':
return 5
case 'warning':
return 4
case 'error':
return 3
case 'crit':
return 2
case 'alert':
return 1
case 'emerg':
return 0
default:
throw new Error(
'Logger: The level number should be [\'debug\', \'info\', \'notice\', \'warning\', \'error\', \'crit\', \'alert\', ' +
'\'debug\', emerg] but got ' + level)
}
} else {
switch (parseInt(level, 10)) {
case 7:
return 'debug'
case 6:
return 'info'
case 5:
return 'notice'
case 4:
return 'warning'
case 3:
return 'error'
case 2:
return 'crit'
case 1:
return 'alert'
case 0:
return 'emerg'
default:
throw new Error('Logger: The level number should be [7..0] but got ' + level)
}
}
}
const Utils = require('./utils')
module.exports.logger = function (level, transports) {
var levels = {}
levels[level] = this.level(level)
levels[level] = Utils.level(level)
return new winston.Logger({

@@ -58,0 +12,0 @@ levels: levels,

'use strict'
var base = require('./base')
const Transporter = require('./transporter')
const Base = require('./base')
const Levels = require('./levels')
module.exports.debug = function (transports) {
return base.logger('debug', transports)
}
function Logger () {}
module.exports.info = function (transports) {
return base.logger('info', transports)
}
Logger.prototype.init = function (config) {
if (config && !config.transports) {
throw new Error('Logger: No logging transports supplied')
}
module.exports.notice = function (transports) {
return base.logger('notice', transports)
for (let lvl of Levels.toArray()) {
this[lvl] = Base.logger(lvl, Transporter.levelTransports(config, lvl))[lvl]
}
}
module.exports.warning = function (transports) {
return base.logger('warning', transports)
Logger.prototype.log = function (lvl, msg) {
this[lvl](msg)
}
module.exports.error = function (transports) {
return base.logger('error', transports)
}
module.exports.crit = function (transports) {
return base.logger('crit', transports)
}
module.exports.alert = function (transports) {
return base.logger('alert', transports)
}
module.exports.emerg = function (transports) {
return base.logger('emerg', transports)
}
module.exports = new Logger()
'use strict'
var winston = require('winston')
const winston = require('winston')
require('winston-syslog').Syslog
const formatter = require('./formatter')
module.exports.levelTransports = function (config, level) {

@@ -19,5 +21,8 @@ var transportsArray = []

Object.assign(options, formatter)
if (lvl.indexOf(level) > -1) {
switch (transport) {
case 'console':
options.silent = (options.silent != null) ? options.silent : (process.env.NODE_ENV === 'test')
transportsArray.push(new (winston.transports.Console)(options))

@@ -24,0 +29,0 @@ break

{
"name": "@c8/logger",
"version": "1.0.1",
"version": "1.0.2",
"description": "Easy to use (config-based) wrapper around winston logger",

@@ -16,3 +16,3 @@ "main": "index.js",

"standard": "standard --verbose",
"test": "mocha"
"test": "NODE_ENV=test mocha"
},

@@ -38,5 +38,7 @@ "repository": {

"code": "^2.2.0",
"express": "^4.13.4",
"istanbul": "^0.4.3",
"mocha": "^2.4.5",
"standard": "^6.0.8",
"supertest": "^1.2.0",
"test-console": "^1.0.0"

@@ -43,0 +45,0 @@ },

@@ -1,6 +0,6 @@

# C8-Logger
# Logger
Easy to use (config-based) wrapper around winston logger
# Available Transports
## Available Transports

@@ -10,6 +10,6 @@ - Console

- SysLog (currently on hold)
# Available log levels
## Available log levels
- `7` -> `debug`

@@ -23,5 +23,8 @@ - `6` -> `info`

- `0` -> `emerg`
# Usage
## Installation
`npm i @c8/logger`
## Usage
```javascript

@@ -57,4 +60,40 @@

# Tests
### Middleware
In order to use the logger as an Express middleware you should add:
```
var loggerMiddleware = logger.middleware.Express
server.use(loggerMiddleware.debug)
// or
server.get('/', loggerMiddleware.debug, function (req, res) {
res.status(200)
}
```
The middleware logger uses the same config you pass in `logger.init(/*config*/)` and depending on the log level method you use the middleware with it will be sent to the transport specified in the config.
The middleware can be used globally before any route `server.use(loggerMiddleware.debug)` or route specific `server.get('/route', loggerMiddleware.debug, function (req, res) {...})`
All error logs are pushed using levels `error`, `crit`, `alert`, `emerg` and should be defined *under* the route declaration:
```
// ^^^ all routes are defined above ^^^
// use 'error' method for error printing
server.use(loggerMiddleware.error)
```
### Formatting
Logger has a default log messages formatting. There are 2 different use-cases on how the formatting will look like:
#### `logger.debug('log message')`
- `{{timestamp}} {{hostname}} {{logLevel}} {{logMessage}}`
#### `logger.debug('log message', new Error('My Log Error'))`
- `{{timestamp}} {{hostname}} {{errorType}}:{{errorMessage}} {{path:line:column}} {{logLevel}} {{logMessage}}`
## Tests
Run the following commands:

@@ -64,6 +103,6 @@ - `npm run test` for unit tests

- `npm run coverage` for code coverage
# Licence
## Licence
MIT Licence
© Copyright 2016 C8 MANAGEMENT LIMITED
/* eslint-env mocha */
'use strict'
var logger = require('../../index')
const Logger = require('../../index')
const Levels = require('../../lib/levels')
var CONFIG = {
let CONFIG = {
transports: {
console: {
level: ['debug', 'info', 'notice', 'warning', 'error', 'crit', 'alert', 'emerg'],
level: Levels.toArray(),
options: {
silent: true
silent: false
}

@@ -18,55 +19,65 @@ }

describe('Test Console Logger', function () {
before(function (done) {
logger.init(CONFIG)
done()
before(function () {
Logger.init(CONFIG)
})
it('- test debug method', function (done) {
logger.debug('debug')
done()
it('- test debug method', function () {
Logger.debug('debug')
})
it('- test info method', function (done) {
logger.info('info')
done()
it('- test info method', function () {
Logger.info('info')
})
it('- test notice method', function (done) {
logger.notice('notice')
done()
it('- test notice method', function () {
Logger.notice('notice')
})
it('- test warning method', function (done) {
logger.warning('warning')
done()
it('- test warning method', function () {
Logger.warning('warning')
})
it('- test error method', function (done) {
logger.error('error')
done()
it('- test error method', function () {
Logger.error('error')
})
it('- test crit method', function (done) {
logger.crit('crit')
done()
it('- test crit method', function () {
Logger.crit('crit')
})
it('- test alert method', function (done) {
logger.alert('alert')
done()
it('- test alert method', function () {
Logger.alert('alert')
})
it('- test emerg method', function (done) {
logger.emerg('emerg')
done()
it('- test emerg method', function () {
Logger.emerg('emerg')
})
it('- test emerg method', function (done) {
logger.log('emerg', 'log.emerg')
done()
it('- test emerg method', function () {
Logger.log('emerg', 'log.emerg')
})
after(function (done) {
done()
it('- test EvalError', () => {
Logger.error('Eval Error Test', new EvalError('My Eval Error'))
})
it('- test SyntaxError', () => {
Logger.error('Syntax Error Test', new SyntaxError('My Syntax Error'))
})
it('- test RangeError', () => {
Logger.error('Range Error Test', new RangeError('My Range Error'))
})
it('- test ReferenceError', () => {
Logger.error('Reference Error Test', new ReferenceError('My Reference Error'))
})
it('- test TypeError', () => {
Logger.error('Type Error Test', new TypeError('My Type Error'))
})
it('- test URIError', () => {
Logger.error('URI Error Test', new URIError('My URI Error'))
})
})
/* eslint-env mocha */
'use strict'
var fs = require('fs')
var path = require('path')
var expect = require('code').expect
var logger = require('../../index')
const fs = require('fs')
const path = require('path')
const expect = require('code').expect
const Logger = require('../../index')
const Levels = require('../../lib/levels')
const FILENAME = path.join('file.log')

@@ -14,3 +16,3 @@

file: {
level: ['debug', 'info', 'notice', 'warning', 'error', 'crit', 'alert', 'emerg'],
level: Levels.toArray(),
options: {

@@ -24,13 +26,11 @@ filename: FILENAME

describe('Test File Logger', function () {
before(function (done) {
logger.init(CONFIG)
done()
before(function () {
Logger.init(CONFIG)
})
beforeEach(function (done) {
beforeEach(function () {
fs.openSync(FILENAME, 'w')
done()
})
it('- test debug method', function (done) {
logger.debug('debug')
Logger.debug('debug')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -40,3 +40,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'debug', message: 'debug'})

@@ -47,3 +46,3 @@ done()

it('- test info method', function (done) {
logger.info('info')
Logger.info('info')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -53,3 +52,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'info', message: 'info'})

@@ -60,3 +58,3 @@ done()

it('- test notice method', function (done) {
logger.notice('notice')
Logger.notice('notice')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -66,3 +64,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'notice', message: 'notice'})

@@ -73,3 +70,3 @@ done()

it('- test warning method', function (done) {
logger.warning('warning')
Logger.warning('warning')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -79,3 +76,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'warning', message: 'warning'})

@@ -86,3 +82,3 @@ done()

it('- test error method', function (done) {
logger.error('error')
Logger.error('error')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -92,3 +88,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'error', message: 'error'})

@@ -99,3 +94,3 @@ done()

it('- test crit method', function (done) {
logger.crit('crit')
Logger.crit('crit')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -105,3 +100,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'crit', message: 'crit'})

@@ -112,3 +106,3 @@ done()

it('- test alert method', function (done) {
logger.alert('alert')
Logger.alert('alert')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -118,3 +112,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'alert', message: 'alert'})

@@ -125,3 +118,3 @@ done()

it('- test emerg method', function (done) {
logger.emerg('emerg')
Logger.emerg('emerg')
fs.readFile(FILENAME, 'utf8', function (err, data) {

@@ -131,3 +124,2 @@ expect(err).to.not.exist()

data = JSON.parse(data)
expect(err).to.not.exist()
expect(data).to.deep.include({level: 'emerg', message: 'emerg'})

@@ -138,6 +130,5 @@ done()

afterEach(function (done) {
afterEach(function () {
fs.unlinkSync(FILENAME)
done()
})
})
/* eslint-env mocha */
'use strict'
var fs = require('fs')
var path = require('path')
var logger = require('../../index')
const fs = require('fs')
const path = require('path')
const Logger = require('../../index')
const Levels = require('../../lib/levels')
const SYSLOG_PATH = path.join('syslog.log')

@@ -13,6 +15,6 @@

syslog: {
level: ['debug', 'info', 'notice', 'warning', 'error', 'crit', 'alert', 'emerg'],
level: Levels.toArray(),
options: {
path: SYSLOG_PATH,
app_name: 'c8-logger'
app_name: 'c8-Logger'
}

@@ -24,16 +26,10 @@ }

describe.skip('Test Syslog Logger', function () {
before(function (done) {
before(function () {
fs.openSync(SYSLOG_PATH, 'w')
logger.init(CONFIG)
done()
Logger.init(CONFIG)
})
it('- test debug method', function (done) {
logger.emerg('debug')
done()
it('- test debug method', function () {
Logger.emerg('debug')
})
after(function (done) {
done()
})
})

@@ -5,51 +5,44 @@ /* eslint-env mocha */

var expect = require('code').expect
var baseLogger = require('../../lib/base')
const Utils = require('../../lib/utils')
describe('Test Logger string levels', function () {
it('- debug level', function (done) {
var out = baseLogger.level('debug')
it('- debug level', function () {
var out = Utils.level('debug')
expect(out).to.be.equal(7)
done()
})
it('- info level', function (done) {
var out = baseLogger.level('info')
it('- info level', function () {
var out = Utils.level('info')
expect(out).to.be.equal(6)
done()
})
it('- notice level', function (done) {
var out = baseLogger.level('notice')
it('- notice level', function () {
var out = Utils.level('notice')
expect(out).to.be.equal(5)
done()
})
it('- warning level', function (done) {
var out = baseLogger.level('warning')
it('- warning level', function () {
var out = Utils.level('warning')
expect(out).to.be.equal(4)
done()
})
it('- error level', function (done) {
var out = baseLogger.level('error')
it('- error level', function () {
var out = Utils.level('error')
expect(out).to.be.equal(3)
done()
})
it('- crit level', function (done) {
var out = baseLogger.level('crit')
it('- crit level', function () {
var out = Utils.level('crit')
expect(out).to.be.equal(2)
done()
})
it('- alert level', function (done) {
var out = baseLogger.level('alert')
it('- alert level', function () {
var out = Utils.level('alert')
expect(out).to.be.equal(1)
done()
})
it('- emerg level', function (done) {
var out = baseLogger.level('emerg')
it('- emerg level', function () {
var out = Utils.level('emerg')
expect(out).to.be.equal(0)
done()
})

@@ -59,48 +52,40 @@ })

describe('Test Logger number levels', function () {
it('- debug level', function (done) {
var out = baseLogger.level(7)
it('- debug level', function () {
var out = Utils.level(7)
expect(out).to.be.equal('debug')
done()
})
it('- info level', function (done) {
var out = baseLogger.level(6)
it('- info level', function () {
var out = Utils.level(6)
expect(out).to.be.equal('info')
done()
})
it('- notice level', function (done) {
var out = baseLogger.level(5)
it('- notice level', function () {
var out = Utils.level(5)
expect(out).to.be.equal('notice')
done()
})
it('- warning level', function (done) {
var out = baseLogger.level(4)
it('- warning level', function () {
var out = Utils.level(4)
expect(out).to.be.equal('warning')
done()
})
it('- error level', function (done) {
var out = baseLogger.level(3)
it('- error level', function () {
var out = Utils.level(3)
expect(out).to.be.equal('error')
done()
})
it('- crit level', function (done) {
var out = baseLogger.level(2)
it('- crit level', function () {
var out = Utils.level(2)
expect(out).to.be.equal('crit')
done()
})
it('- alert level', function (done) {
var out = baseLogger.level(1)
it('- alert level', function () {
var out = Utils.level(1)
expect(out).to.be.equal('alert')
done()
})
it('- emerg level', function (done) {
var out = baseLogger.level(0)
it('- emerg level', function () {
var out = Utils.level(0)
expect(out).to.be.equal('emerg')
done()
})

@@ -110,11 +95,9 @@ })

describe('Test non valid log levels', function () {
it('- non valid string level', function (done) {
expect(baseLogger.level.bind(baseLogger, 'badumtssss')).to.throw(Error)
done()
it('- non valid string level', function () {
expect(Utils.level.bind(Utils, 'badumtssss')).to.throw(Error)
})
it('- non valid number level', function (done) {
expect(baseLogger.level.bind(baseLogger, 999999999)).to.throw(Error)
done()
it('- non valid number level', function () {
expect(Utils.level.bind(Utils, 999999999)).to.throw(Error)
})
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc