すがブロ

sugamasaoのhatenablogだよ

AS3用のロガークラス as_logger.Logger を作った

追記:2010/01/27

バージョン1.0 として改めてリリースしました。
バージョン1.0用エントリはAS3用のロガークラス as_logger.Logger(ver 1.0)をリリースしました - @sugamasao.blog.title # => ”コードで世界を変えたい”でどうぞ。

github にアップロードしてあります。

as_logger の説明

上記ページからの抜粋ですが・・・。

主な特徴
  • Traceログとブラウザ上の console.log(無い場合は window.status) へ出力(出力先は変更可能)
  • 渡されたオブジェクトはできるだけ展開し、文字列形式へ変形して出力します
  • Logger.log メソッドを呼んだメソッド名やクラス名を出力します
  • -compile.debug が true でコンパイルしている場合はソースファイル名や行数を出力することが可能です
使い方
import as_logger.Logger;

Logger.log("うんこー");
Logger.log("unko", new MovieClip());

import したあとは log メソッドを呼ぶだけです。
また、オプションが二つあります。

  • Logger.isFullPath ファイル名を出力するさいに、フルパスで表示するかファイル名のみを出力するか(デフォルト:ファイル名のみ)
  • Logger.writeTarget 出力結果の文字列をどこに出力するか。console.log と traceログがある(デフォルト:両方)

詳細は上記githubページからご確認ください。

出力例(デバッグフラグあり)
[2010-1-27T0:6:35] LoggerDrive.as:33@LoggerDrive#initialize() [hoge<String>:root1<LoggerDrive>,fuga<String>:1<int>]<Object>
[2010-1-27T0:6:35] LoggerDrive.as:35@LoggerDrive#initialize() MovieClip<String>,instance1<flash.display::MovieClip>

このように、"LoggerDrive#initialize()"の部分を見ることで、Logger.log がどのクラスのどのメソッドから呼ばれているかがわかります(ファイル名とクラスがかぶってる気がするけど気にしない)。

使い方

github からチェックアウト等をするか、ページ右上のDownloadからソースを取得してください。

基本的には tag のついてるバージョンが最新のソースになります。
(2010/01/27追記)下記の動作を確認しました。master にあるソースなら Windows でもきちんと動作します*1

※ただし、現在は、Windowsでのテストがされていないのでtagをつけてない trunk が最新ソースとなってます。Windowsでの検証が終わったら tag をつけます(0.3になる予定)。

作成の動機

trace でやると消すのが面倒という点や、traceログだと見に行くのが面倒だったりしたこと。
また、(たぶんちゃんとしたロガークラスってあるだろうけど)勉強がてら小さいライブラリを作ってみたかったということがあります。

何かお気づきの点等があれば

github の issue でも良いですし、このブログでも Twitter(sugamasao (sugamasao) on Twitter)でも良いので教えてくれると嬉しいです。

*1:タグは改めて追加します