Python中的log文件(详细教程)

    科技2024-08-07  27

    1.写在前面2.代码1:在控制台输出log日志3.代码2:在文件中写入log日志4. 代码3:在控制台和文件中分别输出log日志

    写在前面

    log日志一般使用是很方便的,一般使用第二种即可。 详细理解建议仔细阅读第三种写法。 log日志的主要作用有以下两点: 1、错误排查与分析 2、log日志分析,便于编程人员快速了解程序。

    代码1:在控制台输出log日志

    import logging logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') # 开始使用log功能 logging.info('这是 loggging info message') logging.debug('这是 loggging debug message') logging.warning('这是 loggging a warning message') logging.error('这是 an loggging error message') logging.critical('这是 loggging critical message')

    代码2:在文件中写入log日志

    import logging logging.basicConfig(level=logging.WARNING, filename='./log.txt', filemode='w', format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') # use logging logging.info('这是 loggging info message') logging.debug('这是 loggging debug message') logging.warning('这是 loggging a warning message') logging.error('这是 an loggging error message') logging.critical('这是 loggging critical message')

    当然我们也可以使用sys.stdout() 利用sys.stdout将print行导向到你定义的日志文件中,例如:

    import sys # make a copy of original stdout route stdout_backup = sys.stdout # define the log file that receives your log info log_file = open("message.log", "w") # redirect print output to log file sys.stdout = log_file print("Now all print info will be written to message.log") # any command line that you will execute ... log_file.close() # restore the output to initial pattern sys.stdout = stdout_backup print("Now this will be presented on screen")

    代码3:在控制台和文件中分别输出log日志

    import logging # 第一步,创建一个logger logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 此时是INFO # 第二步,创建一个handler,用于写入日志文件 logfile = './log.txt' fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考 fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关 # 第三步,再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.WARNING) # 输出到console的log等级的开关 # 第四步,定义handler的输出格式(时间,文件,行数,错误级别,错误提示) formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") fh.setFormatter(formatter) ch.setFormatter(formatter) # 第五步,将logger添加到handler里面 logger.addHandler(fh) logger.addHandler(ch) # 日志级别 logger.debug('这是 logger debug message') logger.info('这是 logger info message') logger.warning('这是 logger warning message') logger.error('这是 logger error message') logger.critical('这是 logger critical message') # # DEBUG:详细的信息,通常只出现在诊断问题上 # INFO:确认一切按预期运行 # WARNING(默认):一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。 # ERROR:更严重的问题,软件没能执行一些功能 # CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行

    声明:文章主要参考https://blog.csdn.net/rusi__/article/details/100122350和https://www.cnblogs.com/arkenstone/p/5727883.html,在原博文的基础上添加导航目录,旨在帮助大家以更高效的方式完成开发工作。

    Processed: 0.013, SQL: 8