2015-04-05 84 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

顯示日誌在外部控制檯