MathLM のログ
ログを書き込む
ログファイルはメッセージが出されるとそれを記録し,長時間に渡ってライセンス動作の詳細を記録する.
ログファイルの文法
MathLM のログファイルは,すべてデフォルトでApacheのようなWebサーバで使われているW3CのCommon Logfile Formatで生成される.しかし,オプションの -logformatを使ってその形式をカスタマイズすることができる.このオプションはサーバメッセージを表示する形式を指定する文字列を引数に取る.文字列は%var#という形式の一連のコマンドを含む.それぞれは以下の意味を持つ.
例えば%y1は年号を2桁(例:10)で表示するが,%y2は年号を4桁(例:2010)で表示する.
文字列は%var# コマンドに加え,カッコ,ダッシュ,クォーテーションマーク,任意のコメント等のテキストを含むこともできる.テキストはフォーマットの目的でサーバメッセージでコメントとセパレータを含めるのに使うことができる.文字列に含まれるテキストはサーバメッセージではすべて文字通りに表示されるが,例外が次の2つだけある.ダブルクォート(")を含むためには%qを用い,パーセント記号(%)を含むためには%%を用いる.
「MathLM の起動」で説明したように,-loglevelオプションを用いて記録されるメッセージのタイプを指定しなければならない.
次は文字列に含むことができる変数とその数値,形式のリストである.
変数名 | 可能な値 | 説明 | |
| %h# | 1 - IPアドレス 2 - ホスト名 3 - 完全修飾ドメイン名 | ホスト | |
| %u# | 1 - ユーザID 2 - ユーザ名 | ユーザ | |
| %m# | [1...31] | 日付 | |
| %w# | 1 - 数字 [ 1 ... 7 ] 2 - 省略表記 [ Sun ... Sat ] 3 - 略さずに表記 [ Sunday ... Saturday ] | 曜日 | |
| %m# | 1 - 数字 [ 01 ... 12 ] 2 - 省略表記 [ Jan ... Dec ] 3 - 略さずに表記 [ January ... December ] | 月 | |
| %y# | 1 - 2桁 [ 10 ] 2 - 4桁 [ 2010 ] | 年 | |
| %t# | 1 - 12時間 (10:20:15) 2 - 24時間 (22:20:15) 3 - GMTオフセット (-0500) | 時間 | |
| %e# | 1 - 数字 2 - 略さずに表記 | イベント | |
| %r# | 1 - 数字 2 - 略さずに表記 | 応答 |
MathLM ログ変数
注:ネットワーク上のWindowsのクライアントはすべて同じユーザID(デフォルトで65535になっている)を持っている.ゆえに,ユーザIDの設定はUnix,Linux,Mac OS Xを実行しているクライアントにのみ意味がある.
注:GMT(グリニッジ標準時)のオフセット形式(%t3)を使う場合は MathLM をスタートする際に-localtimeオプションも使わなければならない.
サンプルと動作
コマンドmathlm -logfile log.txtをオプション-logformatなしで実行すると,メッセージはデフォルト形式で生成される.以下は,log.txtに含まれるデフォルト形式でのメッセージの例である.
hostname.domain.com - username [01/Sep/2010:22:01:35] "MathLM 8.0 executable launched" ".\mathlm" -
hostname.domain.com - username [01/Sep/2010:22:01:35] "Verbosity level specified" "1" -
hostname.domain.com - username [01/Sep/2010:22:01:35] "Logging verbosity level specified" "3" -
hostname.domain.com - username [01/Sep/2010:22:01:35] "Hostname" "hostname.domain.com" -
Common Logfile Formatを真似たデフォルトのフォーマット文字列は,以下で呼び出すことができる.
%h3 - %u2 [%d/%m2/%y2:%t2 %t3] %q%e2%q %q%r2%q -
Common Logfile Formatを手動で指定するためには,下のコマンドに示す通り,上記の文字列を-logformatオプションの値として指定しなければならない.このコマンドで生成されたメッセージは,上の例と同じ形式である.
mathlm -logfile log.txt -logformat "%h3 - %u2 [%d/%m2/%y2:%t2 %t3] %q%e2%q %q%r2%q -"
時間はデフォルトでグリニッジ標準時で表示される.現地時間で表示したければ,%t1タグか%t2タグで-localtimeコマンドラインオプションを使わなければならない.現地時間で表示したい場合は,%t3タグはフォーマット文字列には現れない.
mathlm -logfile log.txt -localtime -logformat "%h1 - %u2 [%m1-%d-%y1: %t1] %q%e2%q %q%r2%q -"
以下は,log.txtに含まれるような,ユーザ指定の形式によるサーバメッセージの例である.
192.168.1.9 - username [09-16-10: 04:32:51 PM] "MathLM 8.0 executable launched" ".\mathlm" -
192.168.1.9 - username [09-16-10: 04:32:51 PM] "Default (Common Logfile Format) log format specified" "%h1 - %u2 [%m1-%d-%y1: %t1] %q%e2%q %q%r2%q -" -
192.168.1.9 - username [09-16-10: 04:32:51 PM] "Verbosity level specified" "1" -
192.168.1.9 - username [09-16-10: 04:32:51 PM] "Logging verbosity level specified" "3" -
192.168.1.9 - username [09-16-10: 04:32:51 PM] "Hostname" "hostname.domain.com" -
