我有以下代码,当在Odoo-11服务器上运行时,该代码应该打印并记录内容,但是该代码不能执行此操作。那就是您的来历。我需要有人告诉我我的代码出了什么问题以及为什么print和logging语句不起作用。我注意到创建了一个空的日志文件,但该日志文件内部没有任何内容。我使用的操作系统是Windows 7 Professional。我期望在odoo.log文件中找到打印语句。我尝试更改日志级别,但是我认为在DEBUG(当前级别)下,无论info
还是debug
或error
的严重性,所有内容都会被打印出来。我正在查看以查看打印语句的日志文件位于操作系统(OS)上的以下路径中:C:\Program Files (x86)\Odoo 11.0\server\odoo.log
我的代码如下。看到我认为无关紧要的观点。我在编辑中添加了视图。 0_o单击简单的按钮即可调用代码。我测试了按钮单击是否可以在某些类似Python的情况下使用:
with open('file', 'w') as f:
f.write('hi')
点击按钮时,这会写入odoo.log之外的驱动器或使用logging
模块创建的日志中。我从下面代码中有问题的print_name()
方法中删除了此代码。我很好奇为什么print()
和logging.debug()
调用不起作用。
# -*- coding: utf-8 -*-
from odoo import models, fields, api
import logging
logger = logging.getLogger('roll-your-own-odoo-logger')
file_handler = logging.FileHandler('C:\\Users\\username\\Desktop\\odoo-python.log')
file_handler.setLevel(logging.DEBUG)
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(f_format)
logger.addHandler(file_handler)
class PhoneBook(models.Model):
_name = 'phone.book'
_description = 'This is a phone book.'
name = fields.Char(string="Name", required=True)
def print_name(self):
""" This will print stuff - nothing fancy """
logger.info("Name of record: %s" % self.name)
print("Name of record: %s" % self.name)
return True
视图如下:
<odoo>
<data>
<!-- LIST VIEW -->
<record id="phone_book_view_tree" model="ir.ui.view">
<field name="name"> All Phonebook Records</field>
<field name="model">phone.book</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
</tree>
</field>
</record>
<!-- record for the "ir.action.act_window" -->
<record id="action_records_form" model="ir.actions.act_window">
<field name="name">Phonebook Records</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">phone.book</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<!-- record for the "ir.actions.act_window" -->
<!--menu point -->
<menuitem id="menu records" name="Phonebook Records" sequence="22" />
<!-- action for the menu point -->
<menuitem action="action_records_form" id="menu_action_recs"
parent="menu records" sequence="10" />
<!--Create a Form View for "phone.book" model -->
<record id="view_calls_form" model="ir.ui.view">
<field name="name">Phonebook Record</field>
<field name="model">phone.book</field>
<field name="arch" type="xml">
<form>
<sheet>
<group name="group_top">
<group name="group_left">
<!-- add a button -->
<button name="print_name" string="Print" type="object"/>
<field name="name" />
</group>
</group>
</sheet>
</form>
</field>
</record>
</data>
</odoo>