3 Commits
2.2.0 ... 2.3.1

3 changed files with 16 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@jdbernard/logging",
"version": "2.2.0",
"version": "2.3.1",
"description": "Simple Javascript logging service.",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View File

@@ -39,6 +39,8 @@ export class ConsoleLogAppender implements LogAppender {
switch (msg.level) {
case LogLevel.ALL:
case LogLevel.TRACE:
logMethod = console.trace;
break;
case LogLevel.LOG:
logMethod = console.log;
break;
@@ -53,7 +55,7 @@ export class ConsoleLogAppender implements LogAppender {
break;
case LogLevel.ERROR:
case LogLevel.FATAL:
logMethod = console.trace;
logMethod = console.error;
break;
}
@@ -66,9 +68,9 @@ export class ConsoleLogAppender implements LogAppender {
logMethod(fmtMsg);
}
} else {
const { message, _err, _stacktrace, ...rest } = fmtMsg;
const { msg, _err, _stacktrace, ...rest } = fmtMsg;
const summary = `${LogLevel[msg.level]} -- ${msg.scope}: ${
message ?? fmtMsg.method
msg ?? fmtMsg.method
}\n`;
if (msg.err || msg.stacktrace) {

View File

@@ -34,12 +34,15 @@ export interface LogMessage {
export type FlattenedLogMessage = Record<string, unknown>;
/**
* Flatten a log message to a plain object. The *message* field can be either a
* string or an object. In the case of an object message, the LogMessage should
* be flattened before being emitted by an appender, promoting the object's
* fields to the top level of the message. Fields defined on the *LogMessage*
* interface are reserved and should not be used as keys in the message object
* (and will be ignored if they are).
* Flatten a log message to a plain object in preparation for emission to an
* appender.
*
* In general, the *message* field can be either a string or an object. In the
* case of an object message, the LogMessage should be flattened before being
* emitted by an appender, promoting the object's fields to the top level of
* the message. Fields defined on the *LogMessage* interface are reserved and
* should not be used as keys in the message object (and will be ignored if
* they are).
*
* So, for example:
*
@@ -48,7 +51,7 @@ export type FlattenedLogMessage = Record<string, unknown>;
* logger.info({ foo: 'bar', baz: 'qux', ts: 'today', level: LogLevel.WARN });
* ```
*
* Should result after flattening in a structured log message like:
* Will result in a structured log message after flattening like:
* ```json
* {"scope":"example","level":"INFO","foo":"bar","baz":"qux","ts":"2020-01-01T00:00:00.000Z"}
* ```