`
kanpiaoxue
  • 浏览: 1781159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

python 的log格式

 
阅读更多
  • log.py
import logging
import logging.handlers
import os

def init_log(log_path, level=logging.INFO, when="D", backup=7,
             format='%(asctime)s:[%(levelname)s][%(threadName)s] %(filename)s:%(lineno)d --> %(message)s',
             datefmt='%Y-%m-%d %H:%M:%S'):
    """
    init_log - initialize log module

    Args:
      log_path      - Log file path prefix.
                      Log data will go to two files: log_path.log and log_path.log.wf
                      Any non-exist parent directories will be created automatically
      level         - msg above the level will be displayed
                      DEBUG < INFO < WARNING < ERROR < CRITICAL
                      the default value is logging.INFO
      when          - how to split the log file by time interval
                      'S' : Seconds
                      'M' : Minutes
                      'H' : Hours
                      'D' : Days
                      'W' : Week day
                      default value: 'D'
      format        - format of the log
                      default format:
                      %(levelname)s: %(asctime)s: %(filename)s:%(lineno)d * %(thread)d %(message)s
                      INFO: 12-09 18:02:42: log.py:40 * 139814749787872 HELLO WORLD
      backup        - how many backup file to keep
                      default value: 7

    Raises:
        OSError: fail to create log directories
        IOError: fail to open log file
    """
    formatter = logging.Formatter(format, datefmt)
    logger = logging.getLogger()
    logger.setLevel(level)

    # add console log
    consoleHandler = logging.StreamHandler()
    consoleHandler.setLevel(level)
    consoleHandler.setFormatter(formatter)
    logger.addHandler(consoleHandler)
        
    log_dir = os.path.dirname(log_path)
    if not os.path.isdir(log_dir):
        os.makedirs(log_dir)

    handler = logging.handlers.TimedRotatingFileHandler(log_path + '.log',
                                                        when=when,
                                                        backupCount=backup)
    handler.setLevel(level)
    handler.setFormatter(formatter)
    logger.addHandler(handler)

 

 

  • 你可以把上面的代码拷贝到自己的项目中。在程序初始化时,调用init_log即可使日志打印符合规范
import log
def main():
    log.init_log("./log/my_program")  # 日志保存到./log/my_program.log和./log/my_program.log.wf,按天切割,保留7天
    logging.info("Hello World!!!")

参考

*logging — Logging facility for Python

 

 

# logging_example.py

import logging

# Create a custom logger
logger = logging.getLogger(__name__)

# Create handlers
c_handler = logging.StreamHandler()
f_handler = logging.FileHandler('file.log')
c_handler.setLevel(logging.WARNING)
f_handler.setLevel(logging.ERROR)

# Create formatters and add it to handlers
c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
f_handler.setFormatter(f_format)

# Add handlers to the logger
logger.addHandler(c_handler)
logger.addHandler(f_handler)

logger.warning('This is a warning')
logger.error('This is an error')

 

 

控制台打印日志:

import logging


logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, datefmt='%Y-%m-%d:%H:%M:%S', format='%(asctime)s,%(msecs)d [PID:%(process)d] [%(threadName)-12.12s] %(levelname)-5.5s [%(filename)s:%(lineno)d] --> %(message)s')
logger = logging.getLogger(__name__)  

logger.info('start to work. name:%s','kanpiaoxue')

 

 

参考网址: https://realpython.com/python-logging/

 

 

分享到:
评论

相关推荐

    Python Log Demo,实际项目可直接使用

    供实际项目开发直接使用的Python Log Demo,按照日志级别可自定义输出日志级别,并按照日志以及实际项目业务对日志文件进行分类管理,保证快速定位日志,提高查询项目问题的效率。另外定义了日志回滚及最大保存的...

    python提取log文件内容并画出图表

    之前在excel里面分析log数据,简直日了*了。 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用。 日志内容大致如下 2016-10-21 21:07:59,787 [7 MainWindowForm]INFO: update time 136.6314 ...

    用python脚本处理和分析svn log xml

    本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!

    Python编程工具和课件--PythonLog

    Python编程工具 + Python编程课件 简约界面 + 快速响应 + 树状图项目管理 编译编程 + 交互编程 + 语法高亮 + 智能提示 下载链接: https://www.jianguoyun.com/p/DaRAF0QQyIyvBxjUnKEB

    python中Log封装,可直接使用

    在Python编程中,日志(Log)记录是追踪程序运行状态、排查问题和调试代码的重要工具。本封装的目的是为了简化日志管理,提供一种直接可用的日志处理方案。下面我们将详细探讨Python中的日志模块(`logging`),以及...

    apache_Log_analysis.rar_python log_shell

    这个名为"apache_Log_analysis.rar_python log_shell"的压缩包包含了一个实例,演示了如何结合使用shell脚本和Python来处理Apache服务器的日志数据。下面我们将详细探讨这个主题。 首先,Apache服务器的日志文件...

    工作积累(6)-使用python进行log分析

    标题“工作积累(6)-使用python进行log分析”指出,这个话题主要关注如何利用Python语言对日志(log)数据进行分析。在IT行业中,日志文件是系统、应用程序或服务运行过程中产生的记录,用于追踪错误、调试问题、监控...

    Python的log日志脚本.py

    里面包含终端日志和输出文件日志;

    hcldirgit#studygit#8. Python log10函数1

    Python log10()函数描述log10() 方法返回以10为基数的 x 对数。语法以下是 log10() 方法的语法:注意: log10() 是不能直接

    python解析日志文件并且导出到excel中

    要解析`nextcloud.log`,首先需要导入Python的`pandas`库,这是一个用于数据处理和分析的强大工具。我们可以创建一个DataFrame来存储日志数据,然后使用`pandas.read_csv()`或自定义解析函数将日志文件读入DataFrame...

    Python库 | oslo.log-3.15.0.tar.gz

    **Python库oslo.log介绍** oslo.log是OpenStack项目中的一个核心库,它为其他OpenStack组件提供了统一的日志处理框架。这个库的主要目的是为了简化日志管理和配置,提供一致的日志输出格式,便于开发者调试和运营...

    基于python log取对数详解

    在本文中,我们将深入了解Python中计算对数的方法,特别是使用math模块中的log函数。这个函数在数据分析、科学计算以及各种工程领域中经常被使用,因为它能够帮助我们解决许多与指数增长或衰减相关的问题。 首先,...

    Python库 | concurrent_log_handler-0.9.4-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:concurrent_log_handler-0.9.4-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | logchange-0.1.2rc2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:logchange-0.1.2rc2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | log_utils-0.3.0.zip

    资源分类:Python库 所属语言:Python 资源全名:log_utils-0.3.0.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    基于python语言针对lammps输出的log文件进行数据提取

    python小程序,用来提取lammps生成的log文件中某一类数据并导出到excel表格中

    Python库 | cilog-1.2.0-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:cilog-1.2.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python-Naga基于Datalog的规则引擎

    Python-Naga是一个基于Datalog的规则引擎,它在Python开发环境中提供了一种强大的逻辑编程工具。Datalog是一种声明性编程语言,它源自于Prolog,主要用于处理数据查询和推理问题。Naga允许开发者定义一系列规则,...

    Python-Loguru是一个让Python日志记录变得超级简单

    - **处理器**:处理器允许对日志消息进行格式化、颜色编码、添加额外信息等操作。 - **错误处理**:Loguru可以捕获和记录异常,使得调试更容易。 - **日志记录到文件**:可以轻松配置Loguru将日志写入文件,便于...

Global site tag (gtag.js) - Google Analytics