CertFlow 调试指南

本文档帮助开发者调试 CertFlow 应用。


调试模式

启用调试模式

# 方式1:环境变量
export CERTFLOW_DEBUG=1
python run.py

# 方式2:命令行参数
python run.py --debug

# 方式3:修改配置
# config/config.yaml
debug: true

调试日志级别

# 设置日志级别为 DEBUG
export CERTFLOW_LOG_LEVEL=DEBUG
python run.py

常用调试工具

1. 日志输出

from certflow.utils.logger import LoggerManager

log = LoggerManager().get_logger()
log.debug("调试信息: %s", variable)
log.info("普通信息")
log.warning("警告信息")
log.error("错误信息", exc_info=True)

2. 断点调试 (pdb)

# 在代码中插入断点
import pdb; pdb.set_trace()

# 或在命令行运行
python -m pdb run.py

3. Qt 调试

# 打印 Qt 对象信息
print(widget.objectName())
print(widget.geometry())
print(widget.styleSheet())

# 打印信号连接
print(widget.receivers(signal))

4. 数据库调试

# 打印 SQL 语句
from sqlalchemy import event

@event.listens_for(Engine, "before_execute")
def receive_before_execute(conn, clause, multiparams, params):
    print("SQL:", clause)

@event.listens_for(Engine, "after_execute")
def receive_after_execute(conn, clause, multiparams, params, result):
    print("Result:", result.fetchall())

常见问题调试

Q: 导入Excel失败

# 调试 Excel 读取
import pandas as pd
df = pd.read_excel("file.xlsx", header=1)
print(df.columns.tolist())
print(df.head())
print(df.info())

Q: 打印无输出

# 调试打印
from certflow.services.printer import LQ635KIIPrinter
printer = LQ635KIIPrinter()
print("打印机名称:", printer.get_printer_name())
print("可用打印机:", printer.get_available_printers())

Q: 数据库查询慢

# 查看执行的 SQL
from sqlalchemy import create_engine
engine = create_engine("sqlite:///data/db/certflow.db", echo=True)

VS Code 调试配置

// .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: CertFlow",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/run.py",
            "console": "integratedTerminal",
            "env": {
                "CERTFLOW_DEBUG": "1",
                "CERTFLOW_LOG_LEVEL": "DEBUG"
            }
        },
        {
            "name": "Python: CLI Command",
            "type": "python",
            "request": "launch",
            "module": "certflow.cli",
            "args": ["import_sales_plan", "-f", "test.xlsx"],
            "console": "integratedTerminal"
        }
    ]
}

性能分析

使用 cProfile

python -m cProfile -o output.prof run.py
python -m pstats output.prof

使用 line_profiler

pip install line_profiler
kernprof -l -v run.py

使用 memory_profiler

pip install memory_profiler
python -m memory_profiler run.py

常见错误码

错误码

说明

调试建议

1

通用错误

查看日志

2

配置错误

检查 config/*.yaml

3

数据库错误

检查数据库连接

4

文件错误

检查文件权限

5

打印错误

检查打印机连接


获取帮助

  1. 查看日志:logs/certflow.log

  2. 提交 Issue:附上日志和错误信息

  3. 开发讨论:内部交流群