也许这可以帮助您获得一个想法?当然,您可以做得更好,从配置文件中读取设置或其他任何内容,但这是一个简单的示例。
用于配置日志记录的单独模块:mylogmod.py:
import logging
FILENAME = "mylog.log" # Your logfile
LOGFORMAT = "%(message)s" # Your format
DEFAULT_LEVEL = "info" # Your default level, usually set to warning or error for production
LEVELS = {
'debug':logging.DEBUG,
'info':logging.INFO,
'warning':logging.WARNING,
'error':logging.ERROR,
'critical':logging.CRITICAL}
def startlogging(filename=FILENAME, level=DEFAULT_LEVEL):
logging.basicConfig(filename=filename, level=LEVELS[level], format=LOGFORMAT)
main.py:
import logging
from mylogmod import startlogging
from myclass import MyClass
startlogging()
logging.info("Program started...")
mc = MyClass()
一个类myclass.py 来自一个带有自检的模块。您可以在单元测试中执行类似的操作:(请注意,您不需要在单元测试中导入日志模块,只需 startlogging 函数就足够了。这样您可以将默认级别设置为警告或错误以及单元测试和自测调试)
import logging
class MyClass(object):
def __init__(self):
logging.info("Initialze MyClass instance...")
if __name__ == "__main__":
from mylogmod import startlogging
startlogging(level="debug")
logging.debug("Test MyClass...")
#... rest of test code...