https://github.com/datalust/winston-seq
A Winston v3 transport for Seq
https://github.com/datalust/winston-seq
Last synced: 3 months ago
JSON representation
A Winston v3 transport for Seq
- Host: GitHub
- URL: https://github.com/datalust/winston-seq
- Owner: datalust
- License: apache-2.0
- Created: 2021-06-25T01:14:25.000Z (almost 5 years ago)
- Default Branch: dev
- Last Pushed: 2025-05-12T01:02:12.000Z (about 1 year ago)
- Last Synced: 2025-09-21T17:36:24.536Z (9 months ago)
- Language: TypeScript
- Size: 1.07 MB
- Stars: 14
- Watchers: 6
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `winston-seq` [](https://www.npmjs.com/package/@datalust/winston-seq)
A [Winston](https://github.com/winstonjs/winston) v3 transport that sends structured logs to the [Seq log server](https://datalust.co/seq).

## Getting started
Add the `@datalust/winston-seq winston` and `winston` packages to your `package.json`, and configure `winston` with a `SeqTransport`:
```ts
import winston from 'winston';
import { SeqTransport } from '@datalust/winston-seq';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine( /* This is required to get errors to log with stack traces. See https://github.com/winstonjs/winston/issues/1498 */
winston.format.errors({ stack: true }),
winston.format.json(),
),
defaultMeta: { /* application: 'your-app-name' */ },
transports: [
new winston.transports.Console({
format: winston.format.simple(),
}),
new SeqTransport({
serverUrl: "https://your-seq-server:5341",
apiKey: "your-api-key",
onError: (e => { console.error(e) }),
handleExceptions: true,
handleRejections: true,
})
]
});
```
* `serverUrl` - the URL for your Seq server's ingestion
* `apiKey` - (optional) The [Seq API Key](https://docs.datalust.co/docs/getting-logs-into-seq#api-keys) to use
* `onError` - Callback to execute when an error occurs within the transport
* `handleExceptions` - (optional) Send an event [when an uncaught exception occurs](https://github.com/winstonjs/winston#handling-uncaught-exceptions-with-winston)
* `handleRejections` - (optional) Send an event [when an unhandled promise rejection occurs](https://github.com/winstonjs/winston#handling-uncaught-promise-rejections-with-winston)
## Send Log Events
Send structured log events, with properties that can be used later for filtering and analysis:
```ts
logger.info("Hello {name}", {name: "World"});
```
Attach context by creating child loggers:
```ts
const taskLogger = logger.child({ activity: "purchase" });
taskLogger.debug(
"User {user} purchase product {product} at ${price}",
{
user: "Millie Gilbert",
product: "Yardtime Garden Shears",
price: 29.99
});
```
