@gasket/plugin-winston v7.0.6
@gasket/plugin-winston
Set up a winston logger instance for the Gasket logger.
Installation
npm i @gasket/plugin-winston
Update your gasket
file plugin configuration:
// gasket.js
+ import pluginWinston from '@gasket/plugin-winston';
export default makeGasket({
plugins: [
+ pluginWinston
]
});
Configuration
To customize the logger, add a winston
object to your gasket.js
. The properties of this object override the default logging configuration supplied by Gasket.
export default makeGasket({
winston: {
level: 'warning'
},
environments: {
local: {
winston: {
level: 'debug'
}
}
}
});
Options
- Select
winston
configuration values – (multiple) See below for these additional supported properties.
The winston documentation enumerates which properties can be configured. To support best practices & avoid common gotchas, only a subset of these properties are configurable through gasket
.
Configurable in gasket
Name | Default | Description |
---|---|---|
level | 'info' ('debug' in ENV=local) | Log only if info.level less than or equal to this level |
transports | [new Console()] (Console logging) | Set of logging targets for info messages |
silent | false | If true, all logs are suppressed |
levels | winston.config.syslog.levels | Levels (and colors) representing log priorities |
format | Gasket-defined format | Formatting for messages (see: Formats) |
Note: While
levels
are configurable, if you specify your own levels, you should specify a superset of the default levels (available asLog.levels
) above to ensure your gasket application functions successfully. You are also responsible for callingwinston.addColors
for any additional levels that you provide.Note: While
format
is configurable, it is recommended that you callformat.combine
with your custom formats and the result ofLog.getDefaultFormat(local,prefix)
to maintain the consistent functionality
Not Configurable in gasket
Name | Fixed Value | Description |
---|---|---|
exitOnError | true | Ensures uncaught errors trigger process.exit |
Example adding custom Winston transports
Console
transports are set by default. Loggers provided by winston
are
highly customizable using Transports.
gasket.js
import { transports } from 'winston';
export default makeGasket({
winston: {
level: 'warning',
transports: [
// Unified errors.log for all error messages
// in all environments
new transports.File({
filename: 'errors.log',
level: 'error'
})
]
}
});
Lifecycles
winstonTransports
To add custom logger transports, you can also hook the winstonTransports
lifecycle and return a transport or an array of transports you wish to add to
the logger. Here's an example gasket config and a hook that uses that config to
add a FluentD transport:
// gasket.js
export default makeGasket({
winston: {
level: 'warning'
},
fluentd: {
host: 'localhost',
port: 24224,
timeout: 3
},
environments: {
prod: {
fluentd: {
host: 'k8cluster.dns.fluentd',
port: 24224,
timeout: 3
}
}
}
});
// sample-plugin.js
import fluent from 'fluent-logger';
const FluentTransport = fluent.support.winstonTransport();
export default {
name: 'sample-plugin',
hooks: {
winstonTransports(gasket) {
return new FluentTransport('mytag', gasket.config.fluentd);
}
}
};
Test
If you are contributing to this plugin, use the following to run the tests:
npm test
License
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
1 year ago
12 months ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago