# Class BaseAppender

Class
Module
import { BaseAppender } from "@tsed/logger"
Source/packages/logger/src/types/appenders/class/BaseAppender.ts

# Overview

abstract class BaseAppender<Opts = any> implements BaseAppenderMethods {
    #private;
    readonly config: AppenderConfiguration<Opts>;
    appenderOptions: AppenderOptions;
    [key: string]: any;
    constructor(config: AppenderConfiguration<Opts>);
    configure(config: PartialAppenderConfiguration): this;
<span class="token function">layout</span><span class="token punctuation">(</span>...args<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
<span class="token keyword">abstract</span> <span class="token function">write</span><span class="token punctuation">(</span>loggingEvent<span class="token punctuation">:</span> <a href="/api/logger/types/core/LogEvent.html"><span class="token">LogEvent</span></a><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>

}

# Description

# BaseAppender

@tsed/logger can load appenders from outside the core appenders. The type config value is used as a require path if no matching appender can be found. For example, the following configuration will create an appender with decorators:

// consoleAppender.ts
import {Appender, BaseAppender, LogEvent} from "@tsed/logger";
const consoleLog = console.log.bind(console);

@ Appender({name: "console2"})
export class ConsoleAppender extends BaseAppender {
  write(loggingEvent: LogEvent) {
      consoleLog(this.layout(loggingEvent, this.config.timezoneOffset));
  }
}
1
2
3
4
5
6
7
8
9
10

This appender can be use like this:

import {Logger} from "@tsed/logger";
import "./consoleAppender.ts"

const logger = new Logger("loggerName");

logger.appenders
  .set("console-log", {
      type: "console2", level: ["debug", "info", "trace"]
  });
1
2
3
4
5
6
7
8
9

# Members

#private;

readonly config: AppenderConfiguration<Opts>;

appenderOptions: AppenderOptions;

[key: string]: any;

configure(config: PartialAppenderConfiguration): this;

layout(...args: any[]): string;

abstract write(loggingEvent: LogEvent): any;

Other topics