2015-04-05 83 views
3

我在Odoo开发过程中使用pdb.set_trace()作为我的python函数中的一个断点,并且我不断收到日志消息。如何正确调试OpenERP/Odoo?

pdb.set_trace() 
    -> if s['confirm_state'] in ['draft','confirmed']: 

(Pdb) 2015-04-05 05:40:12,794 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:12] "POST /longpolling/poll HTTP/1.1" 200 - 
2015-04-05 05:40:47,769 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:47] "POST /longpolling/poll HTTP/1.1" 200 - 

我首先想到,这是因为即时消息功能,所以我没有安装它。但我仍然不断收到此消息。

这不会阻止我使用pdb堆栈跟踪,但问题在于此终端消息不断显示在pdb跟踪点中键入之间。

回答

2

当您启动Odoo时,您可以将--logfile=<logfile>添加到参数中 - 这会将标准的Odoo日志消息发送到该文件,并且调试器日志保持良好且干净。

即我在/ usr/local/bin目录bash脚本的呼叫:

python /path/to/odoo/odoo.py --addons-path=/path/to/addons,/path/to/custom/addons "[email protected]" 

[email protected]告诉脚本接受结束任何额外的参数,可以这样当我打电话:

odoo --logfile=~/odoospam.log 

我可以调试很好,很整齐。 然后如果你想检查日志只需tail -f ~/odoospam.log

仍然试图找出在docker容器内用pdb进行调试的最佳方法,当我找到合适的方法时,会更新这个。

编辑: 发现如何在泊坞窗这样做(荣誉给https://stackoverflow.com/users/941605/jamey):Docker-compose and pdb docker-compose run --service-ports odoo

0

,我建议你到Visual Studio Code安装调试Odoo:

Visual Studio代码是源由微软为Windows,Linux和macOS开发的代码编辑器。它包括对调试,嵌入式Git控制,语法突出显示,智能代码完成,片段和代码重构的支持。它是免费且开源的,虽然官方下载是在专有许可下进行的。

首先,您需要在VSCode中安装Python Extension。然后,如果你想开始调试,你只需要点击Debug按钮并点击边栏顶部的轮子。文件launch.json将打开,您只需将此元素添加到底部即可。

{ 
    "name": "Python: Odoo", 
    "type": "python", 
    "request": "launch", 
    "stopOnEntry": false, 
    "pythonPath": "${config:python.pythonPath}", 
    "console": "externalTerminal", 
    "program": "/odoo_path/odoo.py", 
    "args": [ 
     "--config=/odoo_config_path/.odoo_8.conf", 
    ], 
    "cwd": "${workspaceRoot}", 
    "env": {}, 
    "envFile": "${workspaceRoot}/.env", 
    "debugOptions": [ 
     "WaitOnAbnormalExit", 
     "WaitOnNormalExit", 
     "RedirectOutput" 
    ] 
} 

一旦添加它,您就可以在VSCode下运行Odoo。有关启动配置的更多信息click here

现在您可以照常创建断点了。您也可以使用调试器控制台。如果你使用属性:"console": "externalTerminal"像我一样,你可以在同一时间

enter image description here

显示日志在外部控制台