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

傷城~ 2022-12-12 13:57 788阅读 0赞
  • 1.写在前面
  • 2.代码1:在控制台输出log日志
  • 3.代码2:在文件中写入log日志
    1. 代码3:在控制台和文件中分别输出log日志

#

写在前面

#

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

#

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

在这里插入图片描述

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

#

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

\#\#

  1. import logging
  2. logging.basicConfig(level=logging.WARNING,
  3. filename='./log.txt',
  4. filemode='w',
  5. format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
  6. # use logging
  7. logging.info('这是 loggging info message')
  8. logging.debug('这是 loggging debug message')
  9. logging.warning('这是 loggging a warning message')
  10. logging.error('这是 an loggging error message')
  11. logging.critical('这是 loggging critical message')

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

在这里插入图片描述

  1. import sys
  2. # make a copy of original stdout route
  3. stdout_backup = sys.stdout
  4. # define the log file that receives your log info
  5. log_file = open("message.log", "w")
  6. # redirect print output to log file
  7. sys.stdout = log_file
  8. print("Now all print info will be written to message.log")
  9. # any command line that you will execute
  10. ...
  11. log_file.close()
  12. # restore the output to initial pattern
  13. sys.stdout = stdout_backup
  14. print("Now this will be presented on screen")

#

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

在这里插入图片描述

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

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

发表评论

表情:
评论列表 (有 0 条评论,788人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java log4j详细教程

      一:Log4j入门简介学习   Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口

    相关 Log4j详细教程

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一