2010年8月6日 星期五

增加自定的 logging 的級別

參考 logging.info() 和 logging.root.info() 後, 總算弄出 loggin.detail(message), 用來記錄 DETAIL 級別的 log, DETAIL 是我自訂的級別, 重要性介於 DEBUG 和 INFO 之間。不確定這樣是不是最好的寫法, 總之有弄成功啦。

def _detail(msg, *args, **kwargs):
    """
    Log a message with severity 'DETAIL' on the root logger.
    """
    if len(logging.root.handlers) == 0:
        logging.basicConfig()

    if logging.root.manager.disable >= logging.DETAIL:
        return

    if logging.DETAIL >= logging.root.getEffectiveLevel():
        apply(logging.root._log, (logging.DETAIL, msg, args), kwargs)

def add_detail_to_logging():
    """
    Add a customized level between INFO and DEBUG.
    """
    logging.DETAIL = 15
    logging.addLevelName(logging.DETAIL, 'DETAIL')
    logging.detail = _detail

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...