Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

使用日志,调试OE程序,分析OE源码



  •       笔者写了一个OE小模块,在安装测试时出现错误,百思不得其解,想看一下到底哪儿出了错,想到了日志,使用python自带的logging,使用后不起作用,搜索OE论坛,才知OE有自己的日志类.
          在netsvc.py中的Logger 类.使用如下:
          import netsvc
          logger=netsvc.Logger()
         
          在程序中如果想看某一个变量的值,使用:  logger.notifyChannel('example module:',netsvc.LOG_INFO,str(变量)),在日志中就会有此变量的值,str 函数把python的任何变量,转变为字符串的值.
          在查看源码时,如果不理解某个 参数或变量的值,就可以使用日志看一下,便于理解.


    这是Logger类中,notifyChannel的定义:

    def notifyChannel(self, name, level, msg)

    level为以下值:
    LOG_NOTSET = 'notset'
    LOG_DEBUG_RPC = 'debug_rpc'
    LOG_DEBUG = 'debug'
    LOG_INFO = 'info'
    LOG_WARNING = 'warn'
    LOG_ERROR = 'error'
    LOG_CRITICAL = 'critical'



  •       笔者写了一个OE小模块,在安装测试时出现错误,百思不得其解,想看一下到底哪儿出了错,想到了日志,使用python自带的logging,使用后不起作用,搜索OE论坛,才知OE有自己的日志类.
          在netsvc.py中的Logger 类.使用如下:
          import netsvc
          logger=netsvc.Logger()
         
          在程序中如果想看某一个变量的值,使用:  logger.notifyChannel('example module:',netsvc.LOG_INFO,str(变量)),在日志中就会有此变量的值,str 函数把python的任何变量,转变为字符串的值.
          在查看源码时,如果不理解某个 参数或变量的值,就可以使用日志看一下,便于理解.


    这是Logger类中,notifyChannel的定义:

    def notifyChannel(self, name, level, msg)

    level为以下值:
    LOG_NOTSET = 'notset'
    LOG_DEBUG_RPC = 'debug_rpc'
    LOG_DEBUG = 'debug'
    LOG_INFO = 'info'
    LOG_WARNING = 'warn'
    LOG_ERROR = 'error'
    LOG_CRITICAL = 'critical'



  • 推荐使用 fopen 的东西.  使用 Logger 来玩.. 信息是记录到 openerp-server.log 文件中的. 而这个文件在 OE server 启动时, 是被锁定状态... 不利于 信息的清理( 不觉得在茫茫 log 信息中 找自己的log 信息很痛苦么?)...

    :)



  • 写到日志中查找的确麻烦,灰常痛苦. 但也是一种方法,一种不同的思路,感谢分享.


  • 管理员

    也可以使用 ide +断点的方法
    windows 下我推荐使用eclipse +pydev,直接可以查看变量值


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待