PLEASE NOTE: This document has not been updated in a while and is out of date, but contents are retained as some may still be useful.
TL;DR? The winston
project recently shipped 3.0.0
out of RC and is actively
working towards the next feature release as it continues to triage issues.
- Be kind & actively empathetic to one another
- What makes up
winston
? - What about
winston@2.x
?! - Could this be implemented as a format?
- Roadmap
Looking for somewhere to help? Checkout the Roadmap & help triage open issues! Find an issue that looks like a duplicate? It probably is! Comment on it so we know it's maybe a duplicate 🙏.
As of winston@3
the project has been broken out into a few modules:
- winston-transport:
Transport
stream implementation & legacyTransport
wrapper. - logform: All formats exports through
winston.format
LEVEL
andMESSAGE
symbols exposed through triple-beam.- Shared test suite for community transports
Let's dig in deeper. The example below has been annotated to demonstrate the different packages that compose the example itself:
const { createLogger, transports, format } = require('winston');
const Transport = require('winston-transport');
const logform = require('logform');
const { combine, timestamp, label, printf } = logform.format;
// winston.format is require('logform')
console.log(logform.format === format) // true
const logger = createLogger({
format: combine(
label({ label: 'right meow!' }),
timestamp(),
printf(({ level, message, label, timestamp }) => {
return `${timestamp} [${label}] ${level}: ${message}`;
})
),
transports: [new transports.Console()]
});
If you are opening an issue regarding the
2.x
release-line please know that 2.x work has ceased. Thewinston
team will review PRs that fix issues, but as issues are opened we will close them.
You will commonly see this closing winston@2.x
issues:
Development `winston@2.x` has ceased. Please consider upgrading to
`winston@3.0.0`. If you feel strongly about this bug please open a PR against
the `2.x` branch. Thank you for using `winston`!
Before opening issues for new features consider if this feature could be implemented as a custom format. If it is, you will see your issue closed with this message:
This can be accomplished with using [custom formats](https://github.com/winstonjs/winston#creating-custom-formats) in `winston@3.0.0`. Please consider upgrading.
Below is the list of items that make up the roadmap through 3.4.0
. We are actively triaging the open issues, so it is likely a few more critical path items will be added to this list before the next release goes out.
- Unstarted work.
- Finished work.
- [-] Partially finished or in-progress work.
- Move
File
transport intowinston-file
. - Browser support
- Unit tests for
webpack
&rollup
- Replicate browser-only transpilation for
winston
,winston-transport
,triple-beam
.
- Unit tests for
- [-] Full JSDoc coverage
- Benchmarking for
File
andStream
transports:- Benchmarking integration in
pino
. - Upgrade
pino
to latestwinston
. - See: https://github.com/winstonjs/logmark
- See also: pinojs/pino#232
- Benchmarking integration in
- Move
logged
event intowinston-transport
to remove need for it in each individual Transport written or remove thelogged
event entirely.
- [-] Replace all
vows
-based tests.- [-]
test/transports/*-test.js
- [-]
- Code coverage tests above 80% for
winston
(currently~70%
).- [-] Core scenarios covered in
abstract-winston-transport
. - [-] Full integration tests for all
logform
transports
- [-] Core scenarios covered in
-
README.md
forwinston-compat
. - Update all transports documented in
docs/transports.md
forwinston@3
.
- [-] Streaming
-
winstonjs.org
documentation site.
- [-] Querying