2013-09-12 2 views
0

Мне нужен другой регистратор для каждого вызова той же функции.Как я могу получить различный регистратор для каждого вызова функции?

loggerA = logging.getLogger('whatever1') 
myfunction('A') 
loggerB = logging.getLogger('whatever2') 
myfunction('B') 
# The loggers must not cross 

Как я могу организовать регистрацию в моей функции для этого? Является ли это возможным?

+3

Это похоже на анти-шаблон при регистрации; можете ли вы объяснить, что вы на самом деле пытаетесь достичь/зачем вам это нужно? –

+0

Мне нужно использовать myfunction в многопоточных потоках. Поэтому я хочу получить другой файл журнала для каждого вызова функции. – kalombo

+1

@kalombo Если вы хотите видеть инструкции журналов каждого потока, почему бы не включить имя потока в оператор регистрации? –

ответ

0

Вы могли бы всегда:

def myfunction(some_arg): 
    logger = logging.getLogger("myfunction." + str(some_arg)) 
    # whatever else 

Но я согласен с Вином - это антипаттерны!

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