MATHEMATICA 教程

记录 MathLM 日志

启用日志记录

用户可以用两种方式启用日志记录.

  • 通过使用选项 -foreground 以在前台保持 mathlm,把服务器消息记录到 stdout.
    • 使用选项 -logfile file 把服务器消息记录到特定的文件中.

    该日志文件记录信息的发生,并且建立了一段时间内许可证活动的详细记录.

    日志(Logging)同时支持 IPv4 和 IPv6 环境,而不需要额外的配置.

日志文件的语法

默认情况下,MathLM 生成为网络服务器如 Apache 所用的所有 W3C Common Logfile 格式的日志文件. 但是,用户必须使用选项 -logformat 自定义该格式. 该选项采用一个指定服务器消息显示格式的字符串变量. 该字符串包括形如 %var# 的命令系列,其中

  • var 是表示九个变量之一的字母,例如,主机、用户、天、时间或者事件.
    • # 是为变量 var 定义特殊格式的一个数.

    例如,%y1 意味着年份以两位数字的格式显示(例如,10),而 %y2 以四位数的格式显示年份(例如,2010).

    除了 %var# 命令,该字符串也可以包含普通文本,如括号、破折号、引号和任意评论. 该文本可用来在服务器消息中包括用以格式化目的的评论和分隔符. 在字符串中包括的所有文本出现在服务器消息中,除了以下两个例外情况:使用 %q 来包括一个双引号("),以及使用 %% 来包括一个百分号(%).

    用户必须指明应该使用选项 -loglevel 记录的消息类型,如 "启动 MathLM" 中解释的.

    下面是可以在字符串中包含的变量列表,以及它们的数值和格式.

    变量名
    可能值
    描述
    %h#1 - IP 地址 2 - 主机名 3 - 完全合格的域名主机
    %u#1 - 用户 ID 2 - 用户名用户
    %m#[1...31]月中的天(Day of Month)
    %w#1 - 数字 [ 1 ... 7 ] 2 - 简略标记 [ Sun ... Sat ] 3 - Verbose [ Sunday ... Saturday ]周中的天(Day of Week)
    %m#1 - 数字[ 01 ... 12 ] 2 - 简略标记 [ Jan ... Dec ] 3 - Verbose [ January ... December ]月份
    %y#1 - 两位数 [ 10 ] 2 - 四位数 [ 2010 ]年份
    %t#1 - 十二小时 (10:20:15) 2 - 二十四小时 (22:20:15) 3 - 格林尼治标准时间差 (-0500)时间
    %e#1 - 数字 2 - Verbose事件
    %r#1 - 数字 2 - Verbose响应

    MathLM 日志变量.

注意:在网络上的所有 Windows 客户端具有相同的用户 ID (默认设置为号码 65535). 因此,用户 ID 设置仅对于运行 Unix、Linux 或者 Mac OS X 的客户端有意义.    

注意:若要使用格林尼治标准时间差格式(%t3),用户还必须使用 -localtime 选项,当启动 MathLM 时.

样例与行为

运行命令 mathlm -logfile log.txt,在没有选项 -logformat 的情况下,生成具有默认格式的消息. 以默认格式的消息的例子,如 log.txt 中包含的,如下所示.

默认格式字符串,它模仿了通过日志文件(Common Logfile)格式,可以通过以下方式调用.

%h3 - %u2 [%d/%m2/%y2:%t2 %t3] %q%e2%q %q%r2%q -

若要手动指定通用的 Logfile 格式,用户必须把该字符串指定为 -logformat 选项的值,如下面命令所示. 由该命令生成的消息与前面例子具有相同的格式.

mathlm -logfile log.txt -logformat "%h3 - %u2 [%d/%m2/%y2:%t2 %t3] %q%e2%q %q%r2%q -"

默认情况下,时间以格林尼治时间(GMT)显示. 如果用户想要以本地时间显示,必须使用 -localtime 命令行选项,标签或者为 %t1 或者为 %t2. 如果用户想要显示本地时间,则 %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 »