2014-11-26 3 views
0

Im runnin скрипт python в моем приложении django.Python Logger Issue - TypeError

import logging,os,shelve 

def logging_setup(app='default'): 
    """ basic logging setup """ 
    logfile = '/var/log/folder/'+app+'.log' 

    logger = logging.getLogger(app) 
    hdlr = logging.FileHandler(logfile) 
    formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s') 
    hdlr.setFormatter(formatter) 
    logger.addHandler(hdlr) 
    logger.setLevel(logging.DEBUG) 

    return loggerah man ive been slammed 

Однако, когда я называю это внутри моего кода я получаю ..

2014-11-26 15:24:56,977 [ERROR] 'ProcessAwareLogger' object is not callable 
Traceback (most recent call last): 
    File "/staging/nx/views.py", line 40, in nx_input 
    crawl_data = nx_runner.main(device=serializer.data["input"]) 
    File "/staging/nx/runner.py", line 101, in main 
    self.import_to_mongo() 
    File "/staging/nx/runner.py", line 69, in import_to_mongo 
    mongo_import.import_all_devices() 
    File "/staging/nx/parser.py", line 194, in import_all_devices 
    device_model = self.import_device(d) 
    File "/staging/nx/parser.py", line 158, in import_device 
    self.dstoreimport(str(aggrs)) 
TypeError: 'ProcessAwareLogger' object is not callable 

звоню его через ....

self.dstoreimport = logging_setup(app="dataImportMongo") 
self.dstoreimport(str(aggrs)) 

Любые идеи ..?

+0

Мы не можем помочь, не видя * точно, как вы называете это изнутри кода и * полной * трассировки. –

ответ

4

вместо

self.dstoreimport(str(aggrs)) 

попробовать

self.dstoreimport.info(str(aggrs)) 

вместо этого.

self.dstoreimport является объектом регистратора и, следовательно, не является вызываемым (следовательно, является ошибкой). Вам нужно вызвать метод экземпляра этого объекта (в этом примере я использую info(), но вы можете легко позвонить debug(), error() и т. Д. В зависимости от ваших потребностей).

+0

иногда его самые легкие вещи, которые могут догнать. :) Благодаря – felix001

Смежные вопросы