如何在 dokuwiki 打印调试日志

在 DokuWiki 中,有几种方法可以打印和查看调试日志。DokuWiki 提供了专门的调试函数和日志系统,让你能够记录和查看调试信息。

1. 使用 dbg() 函数打印调试信息

DokuWiki 提供了 dbg() 函数,可以直接在页面上打印调试信息:

dbg($variable); // 在页面上显示变量内容  
dbg($variable, true); // 在HTML注释中显示变量内容(不可见但在源代码中可查看)

这个函数定义在 inc/infoutils.php 文件中: infoutils.php:522-533

2. 使用 Logger 类记录调试日志

对于更系统化的日志记录,DokuWiki 提供了 Logger 类:

use dokuwiki\Logger;  

// 记录调试日志  
Logger::getInstance(Logger::LOG_DEBUG)->log('调试信息标题', $data);

Logger 类定义在 inc/Logger.php 文件中: Logger.php:10-20

Logger 支持几种不同类型的日志: Logger.php:12-14

3. 启用调试模式

要使用调试功能,你需要在 DokuWiki 配置中启用调试模式:

  1. 编辑 conf/local.php 文件
  2. 添加或修改 $conf['allowdebug'] = 1; 设置

4. 查看调试日志

4.1 查看页面上的调试输出

如果你使用 dbg() 函数,调试信息会直接显示在页面上,或者在页面源代码的HTML注释中(如果使用了 dbg($var, true))。

4.2 查看日志文件

使用 Logger 类记录的日志会保存在 DokuWiki 的日志目录中:

  • 调试日志: data/log/debug.log
  • 错误日志: data/log/error.log
  • 废弃功能日志: data/log/deprecated.log

你可以通过FTP或服务器文件管理器访问这些文件。

4.3 使用内置调试页面

DokuWiki 还提供了一个内置的调试页面,可以显示系统信息和配置:

  1. 确保 $conf['allowdebug'] = 1; 已设置
  2. 访问 http://你的网站/doku.php?do=debug

这将显示一个包含系统信息的页面,如下所示: html.php:732-740

5. 使用 DebugHelper 类

对于更高级的调试需求,DokuWiki 提供了 DebugHelper 类: DebugHelper.php:9-20

实际使用示例

示例1:在插件中记录调试信息

<?php  
// 在插件中使用调试功能  
use dokuwiki\Logger;  

class syntax_plugin_example extends \dokuwiki\Extension\SyntaxPlugin {  
    public function handle($match, $state, $pos, \Doku_Handler $handler) {  
        // 使用dbg()直接在页面上显示  
        dbg("处理匹配: " . $match);  

        // 使用Logger记录到日志文件  
        Logger::getInstance(Logger::LOG_DEBUG)->log(  
            '插件调试',   
            ['match' => $match, 'state' => $state, 'pos' => $pos]  
        );  

        // 处理逻辑...  
        return $data;  
    }  
}

示例2:检查配置是否允许调试

<?php  
// 检查是否允许调试  
global $conf;  
if ($conf['allowdebug']) {  
    dbg("调试模式已启用");  
    // 执行调试代码  
}

注意事项

  1. 安全考虑:在生产环境中应禁用调试功能($conf['allowdebug'] = 0;),因为调试信息可能包含敏感数据。
  2. 日志轮换:DokuWiki 的日志文件会按日期自动轮换,每天创建一个新的日志文件。
  3. 禁用特定类型的日志:你可以在配置中禁用特定类型的日志:
    $conf['dontlog'] = 'debug,deprecated';  // 禁用调试和废弃功能日志

Notes

DokuWiki 提供了多种调试工具,从简单的 dbg() 函数到更复杂的 Logger 类和 DebugHelper。选择哪种方法取决于你的具体需求和调试场景。

在开发插件或修改 DokuWiki 核心时,良好的日志记录习惯可以帮助你更快地识别和解决问题。但请记住,在生产环境中应该禁用详细的调试日志,以避免性能问题和潜在的安全风险。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇