Typescriptでlog4jsを使ってログ出力処理を簡単に実装する方法

どんなアプリケーションにもログ出力機能は必要ですが、個別に実装していくのは
かなり面倒です。
なので、クラスを定義してどのアプリケーションにも簡単に実装できるようにしてみました。
言語はTypescriptで、NodeJSのモジュールを使用しています。

1. 使用するモジュール

使用している方が多い(と個人的に思っている)log4jsを使用します。

https://www.npmjs.com/package/log4js

log4jsは、DEBUGやINFO、FATALなど重要度に応じたログレベルを定義して出力できます。

npm install log4jsでインストールしてください。

2. ログ出力クラス

今回は簡単に、ログをファイルに出力する方式で実装しています。


// logger.ts
export interface ILogging {
    Logging(str:string):any
}
export class LoggingClass implements ILogging {
    Logging(logstr:string):any {
        const log4js = require('log4js');
        log4js.configure({
        appenders : {
            app : {type : 'file', filename : './log/app.log'}
        },
        categories : {
            default : {appenders : ['app'], level: 'debug'},
        }
        });
        const logger = log4js.getLogger('app');
        logger.debug(logstr)
    }
}

Javascriptっぽくなっていますが、const log4js = require('log4js');でモジュールを呼び出しています。

log4js.configureで設定情報を定義しています。
categoriesでデフォルトのレベル(level)と、識別情報(appendars)を定義します。今回は、デフォルトレベルはdebugとしています。

識別情報appの出力方式はファイルとし、ファイルパスを定義します。

ここではLoggingという関数で定義しています。引数にlogstr(文字列型)を受け取り、debugレベルで書き込むというものです。

3. ログを出力する側のソースコード


import {LoggingClass} from "./logger"
const Logging = new LoggingClass()
Logging.Logging(Application Initialized);

さきほどのログ出力クラスであるlogger.tsをインポートし、newでインスタンスLoggingを作成します。

Logging関数を実行し、ログを出力させています。

こうやって、機能をファイルごとに細分化してクラスにしておけば、他のシステムでも流用しやすくなりますよね。
ということで、logger.tsはこちらからダウンロード可能です。よければ使ってみてください。

logger.ts のダウンロードはこちらから。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です