Hunanori
js のログなんかいろいろ AS ではこんなようなのみんな持ってた気がする
推奨環境: IE10+
Usage
Hunanori.setup("Hunanori.min.js")Hunanori.log("ソイヤ!")
#results
#ソイヤ!デバッグをオフ
Hunanori.debug = false
Hunanori.log("ソイヤソイヤ!")
#results...debug を false にすると出力されなくなる
ログレベル
ピンポイントで指定
Hunanori.log("やばお", Hunanori.ERROR)
#Error やばおエラーとして出力される
全体で設定
Hunanori.level = Hunanori.WARNING
Hunanori.log("面舵いっぱい")
Hunanori.log("取舵いっぱい")
#results....
#ワーニング 面舵いっぱい
#ワーニング 取舵いっぱい常に指定したログレベルで出力される。
インスタンスにも持たせる
class Sencho extends Hunanori
constructor:()->
sencho = new Sencho()
sencho.log("お腹すいた")
#results...
#お腹すいた一見すると console.log で良さげだが
Hunanori.debug = false
sencho = new Sencho()
sencho.log("お腹すいた")
sencho.log("寝たい")
#results...Hunanori を継承していると、まとめてオン/オフがトグル出来る。
prefix, separator
class Sencho extends Hunanori
separator: "▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああ"
prefix: ":( ゙゚'ω゚'):ウウウオオオアアアーーー!!!"
constructor:()->
sencho = new Sencho()
sencho.log("航路間違えた")
#results...
#:( ゙゚'ω゚'):ウウウオオオアアアーーー!!!
#航路間違えた
#▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああ出力したいメッセージの前後に区切り文字などを挟むことが出来る。
タイムスタンプ
Hunanori.stamp = true
Hunanori.log("遭難した")
Hunanori.log("食料がない")
#results...
#遭難した [Fri Jun 28 2013 09:56:51 GMT+0900 (JST)]
#食料がない [Fri Jun 28 2013 09:56:51 GMT+0900 (JST)]ログの出力に日時を含めてくれる
残念なところ
- console.log 諸々な都合上、実行時の行数が Hunanori 内になってしまいます。
- 単純な解決手法としては console.log.bind(console) を即時関数の戻り値としてあげればできますが
- 区切り文字を入れるとか出来ない
- タイムスタンプ押すとか出来ない
- デバッグモードでなければ出力しないなどの制限ができない
と、他にできなくなる事の方が多いので Call Stack を辿って無理やり実行時の行数を出力させてます。 このへんうまいこと解決出来ればもっと良くなると思っています。
気が向いたら実装しようと思ってること
- タイムスタンプのフォーマットいじれるように
- 出力時のフォーマットをいじれるように。 ltsv とかも対応できたらしたい。
- ログを JSON とかで吐けるように