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", "name": "@jdbernard/logging",
"version": "2.2.0", "version": "2.3.1",
"description": "Simple Javascript logging service.", "description": "Simple Javascript logging service.",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

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

View File

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