Allow LogMessageFormatter to return FlattenedLogMessages.
Originally the idea was that a log formatter should turn the LogMessage into a string that can be appended via a LogAppender. However, all of the default LogAppenders can handle objects. In particular, the ConsoleLogAppender writes to the browser console which offers an interactive UI experience when logging raw objects. For LogAppenders that can only manage text, it seems an acceptable design decision to require users to provide a LogMessageFormatter that returns a string, or accept some sane default like JSON.stringify if their formatter returns objects.
This commit is contained in:
@ -1,14 +1,14 @@
|
||||
import {
|
||||
flattenMessage,
|
||||
LogLevel,
|
||||
LogMessage,
|
||||
LogMessageFormatter,
|
||||
structuredLogMessageFormatter
|
||||
} from './log-message';
|
||||
import { LogAppender } from './log-appender';
|
||||
|
||||
export class ConsoleLogAppender implements LogAppender {
|
||||
public threshold = LogLevel.ALL;
|
||||
public formatter = structuredLogMessageFormatter;
|
||||
public formatter: LogMessageFormatter = flattenMessage
|
||||
|
||||
constructor(threshold?: LogLevel, formatter?: LogMessageFormatter) {
|
||||
if (threshold) {
|
||||
|
Reference in New Issue
Block a user