增加自定的 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

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置