DATE : 2006/04/17 (Mon)
(前回の記事)
SimpleLog を設定する
これで、SimpleLog を使ってログを出力できるようになりました。
なお、システムプロパティやプロパティファイルなどを使って SimpleLog を設定できます。プロパティファイルで設定する場合は、「simplelog.properties」というファイルを作ります。
設定できるプロパティは以下の通りです。
- org.apache.commons.logging.simplelog.defaultlog
-
SimpleLog 全体の標準のログレベルを指定します。
trace, debug, info, warn, error, fatal のいずれかを値に設定します。
設定しない場合は、 info となります。
- org.apache.commons.logging.simplelog.log.xxxxx
-
xxxxx の名前を持つ SimpleLog のログレベルを指定します。
xxxxx には、Log を生成した際に設定した文字列か、クラスの完全修飾名を指定します。
設定できる値は上と同様です。
設定しない場合は、上の設定に従います。
- org.apache.commons.logging.simplelog.showlogname
-
Log を生成した際に設定した文字列か、クラスの完全修飾名を出力するかどうかを指定します。
true で出力し、 false では出力しません。
指定しない場合は false です。
- org.apache.commons.logging.simplelog.showShortLogname
-
xxx.xxx という形式の文字列を Log の生成時に設定した場合に、最後の「.」以降の文字列のみを出力します。クラスを設定して生成した場合は、クラスの単純名を出力します。
true で短い形式で出力し、 false ではそのまま出力します。
指定しない場合は false です。
- org.apache.commons.logging.simplelog.showdatetime
-
ログに日時を出力するかどうかを指定します。
true で日時を出力し、 false では出力しません。
指定しない場合は false です。
- org.apache.commons.logging.simplelog.dateTimeFormat
-
日時の出力形式を指定します。
設定できる値は、 java.text.SimpleDateFormat で設定できる値に従います。
設定しない場合は、「yyyy/MM/dd HH:mm:ss:SSS zzz」となります。
DATE : 2006/04/16 (Sun)
「ボクノート 限定版」(スキマスイッチ、BMG JAPAN、1575円)を3月ごろ購入しました。
『映画ドラえもん のび太の恐竜2006』の主題歌です。
普段は限定版や通常版の区別は特に気にせずに買うタイプなのですが、「ボクノート」に関しては限定版を狙っていました。
何と言っても、ジャケットにドラえもんの姿がスキマスイッチの二人ともども映っているところがポイントです(通常版では、スキマスイッチの二人のみ)。
ちなみに、写真を撮影されたのは HIROMIX。『THE ドラえもん展』に出展されていた方でもあります。このようなところもドラえもんつながりでした。
そして、歌詞カードの裏にはドラえもんロゴのような『スキマスイッチ』の文字が。さらに、CD のレーベルにもドラえもんが。――といっても、ドラえもんそのものではなく、ドラ焼を模したレーベルになっていました。
このように、さりげなくドラえもんにこだわっていて、とてもニクい仕様となっています。
さて、肝心の中身ですが、歌詞が韻を踏んでいて『ボクノート』と聞こえる部分がありました。
また、往年の武田鉄矢による主題歌同様、「のび太の恐竜」のエッセンスを抽出して独立した楽曲になっています。
「のび太の恐竜」を含めた大長編のエッセンスといえば、いつもグータラなのび太が一つの物事に真剣に取り組むという点が挙げられます。
歌詞の内容を要約すると、「思いを詩にしようとしているがなかなかうまくいかない」という感じになっています。
『何をしても続かない』といった部分からは、のび太のすぐに物事を放り出す性格が伝わってきます。しかし、その後に続く『与えられたものがあると言うんなら(中略)自分自身も信じていたいな』という部分からは、ピー助を日本へ送り届ける使命を全うしようとする姿、また、以降の大長編などに見せるのび太の凛とした姿を象徴しているようです。
歌詞の中で思いを伝えようとしている相手『君』は、白亜紀へ帰ったピー助のことでしょう。それと対比するように、『僕がいるこの場所は少し窮屈』という部分があります。
大長編では、非日常な世界へのび太たちが引き込まれていくものの、最後には必ず普段どおりの日常へ帰ってきます。しかも、非日常の世界ではどのようなことが起こっていても、帰ってくる日常の世界へは影響が残りません。非日常の世界では日常から解放されて遊ぶことができた反面、敵によって大ケガを負ったり、命を狙われたりと大変なことが起こります。
日常へ帰った後に非日常の世界を思い起こしてみれば、確かに日常の世界は『少し窮屈』なのかもしれません。
それにしても、ピー助との別れは非常に胸が締め付けられます。
現代に帰ってきたのび太は、白亜紀の海で暮らすピー助に思いを馳せるでしょう。見ようと思えば、タイムテレビで様子を見ることもできます。
しかし、現代にピー助はいません。のび太が思いを馳せる現代では、当然のごとくピー助は生きていないのです。
心の中と現実とが食い違う別れほど、むなしいものはありません。これは、いつか別れることになるのび太とドラえもんにも言えるのかもしれません。
ところで、限定版には DVD が付いています。その中には「ボクノート」のビデオクリップや、「ボクノート」を含めたスキマスイッチの製作現場に密着したビデオが収められています。
ビデオクリップの最後の1カットに、ドラえもんが出てきます。ジャケットやレーベルだけでなく、ビデオクリップにまでドラえもんが出てくるとは予想していませんでした。
ところで、「ボクノート」を購入しようとしたらこんなことがありました。
------------------------------------------------------------- 筆者 →( ^ω^)つ□ ← ボクノート(店頭用空箱) (´∀` ) ← 店員 ------------------------------------------------------------- ( ^ω^) □⊂(´∀` ) < 少々お待ちください ------------------------------------------------------------- ( ^ω^)ワクワク ( ´∀`) ガサゴソ ------------------------------------------------------------- ( ^ω^)ワクワク (´∀` ) < 売り切れです ------------------------------------------------------------- ( ^ω^) (´∀` ) ------------------------------------------------------------- ε≡≡⊂二二二( ^ω^)二⊃ブーン -------------------------------------------------------------
(;^ω^)売り切れなら空箱も撤去しておいてほしいものですね
DATE : 2006/04/15 (Sat)
(前回の記事)
ログの生成が重い場合
これでログが出力できるようになりました。
しかし、出力するログのレベルが info 以上で次のような場合を考えてみます。
public void execute(int a) {
log.trace("引数" + a + "で execute 起動");
}
Log#trace(String) は実行されますが、出力するログレベルが info 未満なので、ログには出力されません。すると、文字列の連結処理「"引数" + a + "で execute 起動"」が無駄になってしまいます。
最近のマシンは性能が良いので、上のように無駄になる処理があっても実行速度には全くと言っていいほど影響しません。
しかし、もし明らかに影響を与えているような処理があれば、次の方法で重い処理を回避できます。
public void execute(int a) {
if (log.isTraceEnabled()) {
log.trace("引数" + a + "で execute 起動");
}
}
Log#isTraceEnabled() によって、trace のログが出力される状況であれば true 、出力されない状況であれば false が得られます。
このような、あるレベルのログが出力されるかどうかを確認するメソッドもレベルごとに用意されています。例えば、 debug レベルであれば次のようになります。
public void execute(int a) {
if (log.isDebugEnabled()) {
log.debug("引数" + a + "で execute 起動");
}
}
(つづきます)
DATE : 2006/04/14 (Fri)
(前回の記事)
ログ出力
ログを出力するには、まず org.apache.commons.logging.Log のインスタンスを取得します。
Logging のサンプルコードを見る限り、 static フィールドとして以下のように取得するのがお薦めです。
public class Example {
private static final Log log = LogFactory.getLog(Example.class);
(略)
}
なお、LogFactory#getLog の引数として、クラスオブジェクトの代わりに文字列を指定することもできます。
この Example クラスでログを出力するには、次のようにします。
(Example クラス内)
public void execute() {
log.trace("execute 実行");
(中略)
}
ログレベルの指定は、メソッドを変えることで行います。上の例では trace としてログを出力していますが、 debug として出力するときは以下のようなります。
log.debug("execute 実行");
trace を debug に変えただけです。このように、メソッドはログレベルに対応しています。
また、例外オブジェクトやエラーオブジェクトを出力することもできます。
(つづきます)
DATE : 2006/04/13 (Thu)
(前回の記事)
ログ出力のレベル
Logging では、以下の種類に分けてログを出力できます。
上にあるレベルほどログの重要度が高く、下にあるレベルほどログの重要度は低くなります。
- fatal
- 致命的で、プログラムを強制終了させるほどの状態になった場合。
- error
- エラーが発生した場合や、予期しない状態になった場合。
- warn
- API の使用方法が間違えている場合や、好ましくない状況になった場合。また、軽微なエラーなど。
- info
- 実行時に発生する重要なイベントを報告する場合。
- debug
- システムの流れなどをデバッグ用途に出力する場合。
- trace
- debug よりもさらに細かい情報を出力する場合。
標準では、info 以上のログレベル(info, warn, error, fatal)がログに出力されます。
(つづきます)