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

architect-winston-logger

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

architect-winston-logger - npm Package Compare versions

Comparing version 0.2.1 to 1.0.0

33

index.js

@@ -7,2 +7,3 @@ 'use strict';

var upperCaseFirst = require('upper-case-first');
var camelCase = require('camel-case');

@@ -66,3 +67,3 @@ module.exports = function setup(options, imports, register) {

transport = new (winston.transports[transportNameUC])(transports[transportName]);
transport = new(winston.transports[transportNameUC])(transports[transportName]);
result.push(transport);

@@ -80,11 +81,37 @@ }

LoggerFactory.prototype.create = function (category, label, transports) {
var transportOptions = merge(true, this.defaultTransports);
var factory = this;
var transportOptions = merge(true, this.defaultTransports),
logger;
if (!category) {
throw new Error('Must provide a category for new logger creation as first argument');
}
transportOptions = merge(transportOptions, transports);
this.container.add(category, addLabel(transportOptions, label));
return this.container.get(category);
logger = this.container.get(category);
logger.label = label;
logger.category = category;
logger.destroy = function () {
factory.container.close(category);
};
logger.createChild = function (label) {
var category = camelCase(this.category + label);
return factory.create(category, this.label + ':' + label);
};
return logger;
};
LoggerFactory.prototype.destroy = function (category) {
if (!category) {
throw new Error('Must provide a category for new logger creation as first argument');
}
return this.container.close(category);
};
LoggerFactory.prototype.get = function (category) {

@@ -91,0 +118,0 @@ return this.container.get(category);

3

package.json
{
"name": "architect-winston-logger",
"version": "0.2.1",
"version": "1.0.0",
"description": "Wrapper for winston to use architect",
"main": "index.js",
"dependencies": {
"camel-case": "^1.2.2",
"load-grunt-tasks": "^3.4.0",

@@ -8,0 +9,0 @@ "merge": "^1.2.0",

# architect-winston-logger
Wrapper for using winston as an architect plugin
Prerequisites
----
* Include this package as an architect plugin in your application.
* Inject `loggerFactory` by declaring it in the `consumes` array of one of your plugins
Usage
```
module.exports = function (options, imports) {
var loggerA = imports.loggerFactory.create('loggerA', 'task1');
loggerA.log('info', 'Something wrong');
// info: [task1] Something wrong
var loggerB = loggerA.createChild('subtask2');
loggerB.log('info', 'Something else');
// info: [task1:subtask2] Something else
loggerB.destroy();
};
```

@@ -73,3 +73,3 @@ 'use strict';

});
it('uses respects specified additional transports', function (done) {
it('respects specified additional transports', function (done) {
require('./../index.js')(pluginMeta, {}, function (err, services) {

@@ -89,2 +89,37 @@ var logger1 = services.loggerFactory.create('something', 'something-prefix', {

});
it('chains onto prefix', function (done) {
require('./../index.js')(pluginMeta, {}, function (err, services) {
var logger1 = services.loggerFactory.create('someLogger', 'prefix1');
var logger2 = logger1.createChild('prefix2');
for (var transport in logger2.transports) {
assert(logger2.transports[transport].label === 'prefix1:prefix2', 'Prefix chained to parent');
}
done();
});
});
it('removes specified container', function (done) {
require('./../index.js')(pluginMeta, {}, function (err, services) {
var logger1 = services.loggerFactory.create('something', 'something-prefix', {
file: {
filename: 'somefile.log'
}
});
assert(logger1.destroy instanceof Function, 'Logger exposes destroy method');
assert(services.loggerContainer.loggers.something, 'Logger exists before destroyed');
logger1.destroy();
services.loggerFactory.create('something2', 'something-prefix2', {
file: {
filename: 'somefile.log'
}
});
assert(services.loggerContainer.loggers.something2, 'Logger exists before destroyed');
services.loggerFactory.destroy('something2');
assert(!services.loggerContainer.loggers.something2, 'Logger destroyed');
done();
});
});
});
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