1.0.10 • Published 3 years ago
esther v1.0.10
Esther
An opinionated winston logger wrapper.Requires nodejs 10.11 > as it utilises grpc lib
Usage
The recommended way to use esther
is setup the logger with logger.init
function.
This instantiates a new instance of winston
with your own settings under the hood.
const logger = require('esther');
// Initialise logger
logger.init({
useFileTransport: true,
logDirectory: path.join(__dirname, '..', 'logs'),
});
You may also use esther
via the default logger exposed by require('esther')
This works with ES6
syntax such as import
.
init
Options are identical with winston
configs.
Name | Default | Description |
---|---|---|
level | 'info' | Log only if verbose is less than or equal to this level |
levels | esther.config.levels | Levels representing log priorities |
colors | esther.config.colors | colors representing log priorities |
disableStackTrace | false | Disable logging of stack trace for isHandledError . I.E logger.error(new Error(), { isHandledError: true }); Example |
transports | [] (Console Transport) | Set of logging targets for logs |
useFileTransport | false | If true, will generate and write logs to system |
logDirectory | Root directory of project (__dirname) | Logs directory to be written to |
useStackDriver | false | If true, logger transport will utilise google's StackDriver . |
stackDriverOpt | { serviceName: 'Auth service', ver: '1.0,0' } | Adds labels to each logging |
Refer to Stackdriver docs on how to setup your google service account. Alternatively, if you're deploying your app with kubernetes
on GKE
, each pod is configured with the default
service account
Disable Stack Trace
import { BadRequest } from 'horeb';
import path from 'path';
import logger from 'esther';
logger.init({
disableStackTrace: true,
useFileTransport: true,
logDirectory: path.join(__dirname, 'logs'),
});
const err = new BadRequest('invalid parameters');
logger.error(err, { isHandledError: true });
// Prints out message only
TODO
Parameterized options