2014-01-14 105 views
0

我已經創建了一個用於登錄Python的包裝&想要忽略某些字符串。我相信你可以簡單地做一些事情,比如if msg in FILTER來匹配字符串列表中的一個字符串。過濾一個字符串,如果它在列表中找到

所以我試了這個;

FILTER = ["Couldn't eval", "wrapWithType"] 

class LegacyLogger(logging.Logger): 
    def legacydebug(self, msg, *args, **kwargs): 
     """ 
     Log messages. 

     @param msg: Information to log 
     @type msg: str 
     """ 
     if not any(msg in s for s in FILTER): # also tried 'if not msg in FILTER' 
      self._log(LEGACY_DEBUG_LVL, msg, '') 

    logging.Logger.legacydebug = legacydebug 

但這不是工作作爲我的日誌功能,如線「無法EVALŸ因爲名字的‘Y’沒有定義」那麼,這是否找對字符串匹配總數,而不是部分比賽?

+0

不應該是'對於任何(msg如果s在msg else中對於s在FILTER中)' –

回答

2

我想你想要的是if not any(s in msg for s in FILTER):

+0

當然就這麼簡單! –

2

你一定要扭轉這種局面,我認爲,嘗試:

if any([s in msg for s in FILTER]):

你試圖整個味精匹配濾波器一個字符串,它不給你任何的比賽。

相關問題