どんなアプリケーションにもログ出力機能は必要ですが、個別に実装していくのは かなり面倒です。 なので、クラスを定義してどのアプリケーションにも簡単に実装できるようにしてみました。 言語は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
はこちらからダウンロード可能です。よければ使ってみてください。
実践TypeScript【電子書籍】[ 吉井健文 ]
価格:3726円 (2019/7/23時点)
楽天で購入
](https://hb.afl.rakuten.co.jp/hgc/18648e8b.7d833591.18648e8c.ed1bab3c/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Frakutenkobo-ebooks%2F5456816fd8833397a6aa8b80647873ad%2F%3Fscid%3Daf_pc_bbtn&m=http%3A%2F%2Fm.rakuten.co.jp%2Frakutenkobo-ebooks%2Fi%2F18341447%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ==)
コメント