Создайте приложение LogDNA для log4 js в Typescript - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу создать приложение LogDNA для моего log4js регистратора, поэтому ниже приведен мой код. У меня проблема с функцией configure. На самом деле я не знаю, что это за тип layouts, я знаю, что это функция, но не смог найти ее тип в log4js машинопись:

import { logDnaLogger } from './logging'
import * as log4js from 'log4js'

// This is the function that generates an appender function
function appender(layout: Function, timezoneOffset: string): Function {
    const appender = (loggingEvent: log4js.LoggingEvent): void => {
        logDnaLogger.info(`${layout(loggingEvent, timezoneOffset)}\n`)
    }

    appender.shutdown = (done: Function): void => {
        logDnaLogger.info('LOGDNA ------ SHUTDOWN')
        done()
    }

    return appender
}

function configure(config: log4js.Configuration, layouts: ??????????): Function {
    let layout = layouts.colouredLayout
    if (config.layout) {
        layout = layouts.layout(config.layout.type, config.layout)
    }
    //create a new appender instance
    return appender(layout, config.timezoneOffset)
}

export const logdnaAppender = { configure }

...