気まま日記(kimamanikki)

気の向くままに、のんびり更新しますヽ(´∀`)ノ

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

log4php

この前log4phpとやらを使ってみた。

こいつどうやらLog4Jと同じような機能の実装を目指して開発されているっぽい。

で、ココを参考に色々と触ってみた。

ただこの方法で設定して上手くいったとしても、例えば

+htdocs+
│      ├aaa
│      └bbb
+logs─logs.log

みたいなディレクトリ構造があるとする。

root配下にfirst_log4php.phpを配置して、それに合わせてlog4php.propertiesを記述してってやれば当然動く。

だけど、aaa配下にfirst_log4php.phpをコピーして、log4php.propertiesとLoggerManager.phpへのパスに"../"を加えてもログ出力はされない。

なんでや?

で、ししょ~にちょこっと相談。

そこで大いなる盲点を指摘される。

これってLog4JのPHPなんだから、ファイル単位でどうこうするってんじゃなくって、ログ出力用のモジュールを実装して、ログのユーティリティークラスを作ればいいんじゃね?と。

で、なるほど。とアホな子ながらに考えた。

root配下にログモジュールLoggar.phpを作成。

内容としては、引数で階層の深さに合わせたパスを指定して呼び出すと、そのパスに従って生成したloggarを返してくれる【function getLoggar(pass)】と、最後の【LoggerManager::shutdown()】を実行してくれる【function flush()】を作成。

これでaaa配下のファイルからもbbb配下のファイルからも、Loggar.phpをrequire_once()すればログ出力が行えるように☆

をを~ヽ(´∀`)ノ

ただ階層が深くなると、【getLoggar('../../')】みたいな記述になってちょっとカッコ悪い・・・

これも何とかしたいなぁ・・・そのうち。

でもこのlog4php.propertiesの設定は面倒くさいねぇ・・・

あ、でも慣れればLog4Jと同じような感じかしら?

設定はこちらがオススメ。

特に、

Loggar.php
$remoteAddr = getenv( "REMOTE_ADDR" );
$remoteHost = getenv( "REMOTE_HOST" );
LoggerMDC::put( 'REMOTE_ADDR', $remoteAddr );
LoggerMDC::put( 'REMOTE_HOST', $remoteHost );

log4php.properties
log4php.appender.file.layout.ConversionPattern="%d %5p [addr=%X{REMOTE_ADDR} host=%X{REMOTE_HOST}] - %m%n"

の設定はやっておいた方がいいと思う。

でもこれってちょっと面白いかも・・・

そういやPHPでRSSとかフェードってどうやるんだろう?

今度ちょこっと調べてみようかな・・・


Comments

Leave a Comment


Body

カウンター
セルフィ

 
Twitter



 
 
クラッチ作品集
 
 
プロフィール

クラッチ

気まま日記バナー

・クラッチ
このブログの管理人

 
 
管理人へメール
メールフォームを開く
 
 
ブロとも申請フォーム
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。