• python常用模块


    一 logging模块

    CRITICAL = 50 #FATAL = CRITICAL
    ERROR = 40
    WARNING = 30 #WARN = WARNING
    INFO = 20
    DEBUG = 10
    NOTSET = 0 #不设置
    01.日志级别

    常用配置文件使用logging

     1 """
     2 logging配置
     3 """
     4 # 定义三种日志输出格式 开始
     5 
     6 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' 
     7                   '[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字
     8 
     9 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
    10 
    11 id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
    12 
    13 
    14 # log文件的全路径
    15 fh1_logfile_path = 'b1.log'
    16 fh2_logfile_path = 'b2.log'
    17 
    18 # log配置字典
    19 LOGGING_DIC = {
    20     'version': 1,
    21     'disable_existing_loggers': False,
    22     'formatters': {
    23         'standard': {
    24             'format': standard_format
    25         },
    26         'simple': {
    27             'format': simple_format
    28         },
    29     },
    30     'filters': {},
    31     'handlers': {
    32         #打印到终端的日志,使用的格式为 simple_format
    33         'ch': {
    34             'level': 'DEBUG',
    35             'class': 'logging.StreamHandler',  # 打印到屏幕
    36             'formatter': 'simple'
    37         },
    38         #打印到文件b1.log的日志,使用的格式为 standard_format
    39         'fh1': {
    40             'level': 'DEBUG',
    41             'class': 'logging.FileHandler',  # 保存到文件
    42             'formatter': 'standard',
    43             'filename': fh1_logfile_path,  # 日志文件
    44             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
    45         },
    46         #打印到文件b2.log的日志,使用的格式为 standard_format
    47         'fh2': {
    48             'level': 'DEBUG',
    49             'class': 'logging.FileHandler',  # 保存到文件
    50             'formatter': 'standard',
    51             'filename': fh2_logfile_path,  # 日志文件
    52             'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
    53         },
    54     },
    55     'loggers': {
    56         # 'logger1': {
    57         #     'handlers': ['ch', 'fh1','fh2'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
    58         #     'level': 'DEBUG',
    59         #     'propagate': False,
    60         # },
    61         # '交易日志': {
    62         #     'handlers': ['ch', 'fh1','fh2'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
    63         #     'level': 'DEBUG',
    64         #     'propagate': False,
    65         # },
    66         # '用户权限': {
    67         #     'handlers': ['ch', 'fh1','fh2'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
    68         #     'level': 'DEBUG',
    69         #     'propagate': False,
    70         # },
    71 
    72         '': { # 空字符串表示为通配的logger配置,但找不到匹配的logger名的key时采用
    73             'handlers': ['ch', 'fh1','fh2'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
    74             'level': 'DEBUG',
    75             'propagate': False,
    76         },
    77     },
    78 }
    settings.py
     1 import settings
     2 import logging.config
     3 
     4 logging.config.dictConfig(settings.LOGGING_DIC)
     5 # logger1=logging.getLogger('logger1')
     6 # logger1=logging.getLogger('交易日志')
     7 #
     8 # logger1.debug('测试日志')
     9 
    10 # logger2=logging.getLogger('用户权限')
    11 # logger2.debug('测试日志')
    12 
    13 # import logging.config 的时候 logging也被导入的进来
    14 logger1=logging.getLogger('交易日志')
    15 logger2=logging.getLogger('用户权限')
    16 logger1.debug('测试日志')
    17 logger2.debug('测试日志')
    18 
    19 
    20 # 完整的日志内容;
    21 # 时间
    22 # 级别
    23 # 类型:跟什么业务有关
    24 # 文件名/行号
    25 # 具体的内容
    从字典中加载logging模块的配置.py

    二 datetime模块

    在计算机中,时间实际上是用数字表示的。我们把1970年1月1日00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的世界timestamp为负数),当前的时间相对于epoch time的秒数,称为timestamp。

    timestamp的值为时区毫无关系,因为timestamp一但确定,其UTC时间就确定了,转换到任何时区也是确定的,这就是为什么计算机存储的当前时间是以timestamp表示的,因为全球各地的计算机在任意时刻的timestamp是相同的(前提:时间已校准)。

    参考:

    1. http://www.cnblogs.com/linhaifeng/articles/6384466.html

  • 相关阅读:
    二、七天入门Django开发 搭建最简Django的web服务
    四、七天入门Django开发 Django Shell
    七、七天入门Django开发 使用BootStrap实现博客页面渲染 跳转
    八、七天入门Django开发 Django 实现博客上下篇跳转
    Django报错 no such table: main.auth_user__old
    三、七天入门Django开发 Django模型层
    六、七天入门Django开发 使用Bootstrap实现博客页面渲染
    Raphael.js改变元素层叠顺序
    javascript匿名方法
    依赖注入(二)Autofac简单使用
  • 原文地址:https://www.cnblogs.com/carlous/p/10675471.html
Copyright © 2020-2023  润新知