# 3.16 日志和调试

所有 DOMjudge 守护进程和 web 界面脚本都支持通过 `lib.error.*` 中的函数以统一的方式进行日志记录和调试; 有三种记录信息的方式:

* 记录到 `stderr`, 用于守护进程或用于 web 界面的前端脚本(后者仅在严重问题上)
* 由变量 `LOGFILE` 设置的日志文件, 该变量在每个程序中设置; 取消设置此变量会禁用此方法
* 记录到 `syslog`, 这可以通过 `etc/common-config.php` 中的 `SYSLOG` 变量进行配置; 这份选项给予了 `syslog` 很大的灵活性, 例如远程日志; 详情参阅 `syslog(daemon)` 的文档; 取消设置此变量会禁用此方法

每个脚本还定义了要记录到 `stderr` 的消息的默认阈值级别 (`VERBOSE`: 守护进程中默认为 `LOG_INFO`, web 界面中默认为 `LOG_ERR`) 和 日志文件/syslog (LOGLEVEL: 默认为 `LOG_DEBUG`)

如果出现问题, 建议查看日志以获取线索; 通过将设置 `etc/common-config.php` 文件中配置选项 `DEBUG` 按位或可用的 `DEBUG_*` 标志, 可获取额外的调试信息; 例如, 在 web 界面中生成额外的 SQL 查询和计时信息
