MATHEMATICAチュートリアル

MathLM のログ

ログを書き込む

ログを書き込むには次の2つの方法がある.

  • オプション-foregroundを使ってmathlmをフォアグラウンドに置いた状態で,サーバメッセージをstdoutに記録する.
    • オプション-logfile file を使って,特定のファイルにサーバメッセージを記録する.

    ログファイルはメッセージが出されるとそれを記録し,長時間に渡ってライセンス動作の詳細を記録する.

    ログの書込みはIPv4およびIPv6環境をサポートしており,追加の設定は必要ない.

ログファイルの文法

MathLM のログファイルは,すべてデフォルトでApacheのようなWebサーバで使われているW3CのCommon Logfile Formatで生成される.しかし,オプションの -logformatを使ってその形式をカスタマイズすることができる.このオプションはサーバメッセージを表示する形式を指定する文字列を引数に取る.文字列は%var#という形式の一連のコマンドを含む.それぞれは以下の意味を持つ.

  • var はホスト,ユーザ,日付,時間,イベント等の9つの変数のいずれかを表す文字である.
    • # は変数 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に含まれるデフォルト形式でのメッセージの例である.

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に含まれるような,ユーザ指定の形式によるサーバメッセージの例である.

注:IPv6ネットワークのサーバメッセージは,別の指定をしなくても自動的にIPv6アドレスを表示する.

New to Mathematica? Find your learning path »
Have a question? Ask support »