ログのローテート

ログのローテート」とは、ログ・ファイルが肥大化する前にログ・ファイルを一定期間毎に入れ替えて肥大化を防ぐこと。
例えばlog4jにはデフォルトでローテート機能がついている。
ローテート専用のツールとしては以下がある。
■rotatelogs
Apacheにはログローテーションを行う独自のプログラムが付属している。それが「rotatelogs」である。
 rotatelogsは、Apacheのバイナリが格納されているディレクトリ(通常は/usr/local/apache/bin)に用意されており、その設定はhttpd.confで行う。具体的には「TransferLogディレクティブ」を使う。
管理する世代数を設定しない。そのため、切り出したログファイルは管理者の手で消されるまでディスク上に保存されることになる。
切り出し後のログファイルをログファイルをクリアしない。
■logrotate
Linuxの通常「/usr/sbin」以下に用意されていて、「/etc/logrotate.conf」の内容に従って動作する。ただし、/etc /logrotate.confの設定を書き換えただけではlogrotateは動かない。実際にログをローテーションさせるためには、cronなどを使ってlogrotateを定期的に呼び出してやる必要がある。とはいえ、Linuxを導入した時点でcronの設定も行われているから心配は要らない。
logrotate.confで指定した世代数(rotateで指定)を超えると、それより古いものは自動的に削除する。
切り出し後のログファイルをクリアする。
■cronolog
Apache 2 系のrotatelogs をもう少し多機能にしたログローテートのプログラム。
■newsyslog
FreeBSD では標準でついてくる。
newsyslog の設定は /etc/newsyslog.conf でおこなう。
んー・・・。
この中じゃユーザ権限でインストール可能なツールがなさそうだ。
自分でシェル組むしかないかなぁ。

Loggingの定番log4jのPHP版、log4phpについて

PHPのLoggingについて調べてたらlog4phpなるものを発見した。
筆者は仕事ではJavaを多く使っているのでlog4jの扱いは若干慣れたものである。
んでまぁ、log4jっぽいのなら安心して使える。使うんべ。
ってな感じで早速本家サイトに行ってみたところ・・・
Products
 :
 * log4j
 :
Incubations
* log4php
Productsしてないらしい。
英文は苦手な筆者であるが、これは正式リリースしてないんじゃないか?
と思って色々読んでたら案の定「まだリリースしてないよ」って書いてあった。
log4php0.9について解説しているサイトは見かけたのだが、そもそもver1になっていない時点で正式版では無い訳で・・・。
普通ver1が正式リリースの初版ですよね?間違ってないですよね?
0.9まではダウンロード可能だったんかな。
まぁ正式版でない時点で筆者の選択肢からは除去である。
趣味サイトで使ってみる分にはいいと思うけどさー。
Apacheやlog4jとlog4phpはまだ同列ではないのだ。
もし商用サイトで使っている会社があったりしたら・・・
プロ意識に欠けているといわざるを得ない。
まぁapacheプロジェクトはBSDライセンスだから、自力でバグ修正するってんなら頑張れ。
てかライセンスを確認しないで「あるから使っちゃえ」ぐらいな軽い気持ちで実装している会社が多いと思うのは気のせいだろうか。
こんなんだからIT業界の社会的地位がいつまで立ってもあがらんのです。
欠陥住宅・・・欠陥システムばっかじゃないか。
数年前に@ITで、ソフトウェア開発は認可制にするべきという議論があった。
製造・テスト・保守までとは言わない。
設計に関して言えば、筆者は認可制に大賛成である。
つぶれる会社がたくさんある?
もはやITは社会のインフラである。
んな認可もされないような会社はつぶれてしまえ。
土方とPG・SEは若けりゃいいなんて言われてる現状。
少しでも良いからエンジニアの地位向上に協力出来たら良いと思う。