• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

logging模块的使用

python 搞java代码 3年前 (2022-05-21) 14次浏览 已收录 0个评论

logging模块

  logging日志模块:是用来记录日志的模块,一般记录用户在软件中的操作

  使用方法:模板直接拿来用,手动修改

<span style="font-family:"><span>#</span><span> logging的配置信息(模板)</span>
<span>import</span><span> os
</span><span>import</span><span> logging.config


</span><span>#</span><span> 定义三种日志输出格式 开始(模板,不用配置,直接拿来用)</span>
standard_format = <span>"</span><span>[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]</span><span>"</span><span> 
                  </span><span>"</span><span>[%(levelname)s][%(message)s]</span><span>"</span>  <span>#</span><span> 其中name为get_logger中指定的名字</span><span>
simple_format </span>= <span>"</span><span>[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s</span><span>"</span><span>
id_simple_format </span>= <span>"</span><span>[%(levelname)s][%(asctime)s] %(message)s</span><span>"</span>
<span>#</span><span> 定义日志输出格式 结束</span>


<strong><span>#</span><span> (*****)注意1: log文件的目录(手动修改)</span></strong>
BASE_PATH = os.path.dirname(os.path.dirname(<span>__file__</span>))    <span>#</span><span> 获取项目路径</span>
logfile_dir = os.path.join(BASE_PATH, <span>"</span><span>log</span><span>"</span>)    <span>#</span><span> 存放log文件的目录</span><strong><span>
#</span><span> (*****)注意2: log文件名(手动修改)</span></strong>
logfile_name = <span>"</span><span>user.log</span><span>"</span>


<span>#</span><span> 如果不存在定义的日志目录就创建一个</span>
<span>if</span> <span>not</span><span> os.path.isdir(logfile_dir):
    os.mkdir(logfile_dir)
</span><span>#</span><span> log文件的全路径</span>
logfile_path =<span> os.path.join(logfile_dir, logfile_name)


</span><strong><span>#</span><span> (*****)注意3: log配置字典(模板,不用配置,直接拿来用)</span></strong>
LOGGING_DIC =<span> {
    </span><span>"</span><span>version</span><span>"</span>: 1<span>,
    </span><span>"</span><span>disable_existing_loggers</span><span>"</span><span>: False,
    </span><span>"</span><span>formatters</span><span>"</span><span>: {
        </span><span>"</span><span>standard</span><span>"</span><span>: {
            </span><span>"</span><span>format</span><span>"</span><span>: standard_format
        },
        </span><span>"</span><span>simple</span><span>"</span><span>: {
            </span><span>"</span><span>format</span><span>"</span><span>: simple_format
        },
    },
    </span><span>"</span><span>filters</span><span>"</span><span>: {},
    </span><span>"</span><span>handlers</span><span>"</span><span>: {
        </span><span>#</span><span> 打印到终端的日志</span>
        <span>"</span><span>console</span><span>"</span><span>: {
            </span><span>"</span><span>level</span><span>"</span>: <span>"</span><span>DEBUG</span><span>"</span><span>,
            </span><span>"</span><span>class</span><span>"</span>: <span>"</span><span>logging.StreamHandler</span><span>"</span>,  <span>#</span><span> 打印到屏幕</span>
            <span>"</span><span>formatter</span><span>"</span>: <span>"</span><span>simple</span><span>"</span><span>
        },
        </span><span>#</span><span> 打印到文件的日志,收集info及以上的日志</span>
        <span>"</span><span>default</span><span>"</span><span>: {
            </span><span>"</span><span>level</span><span>"</span>: <span>"</span><span>DEBUG</span><span>"</span><span>,
            </span><span>"</span><span>class</span><span>"</span>: <span>"</span><span>logging.handlers.RotatingFileHandler</span><span>"</span>,  <span>#</span><span> 保存到文件</span>
            <span>"</span><span>formatter</span><span>"</span>: <span>"</span><span>standard</span><span>"</span><span>,
            </span><span>"</span><span>filename</span><span>"</span>: logfile_path,  <span>#</span><span> 日志文件</span>
            <span>"</span><span>maxBytes</span><span>"</span>: 1024 * 1024 * 5,  <span>#</span><span> 日志大小 5M</span>
            <span>"</span><span>backupCount</span><span>"</span>: 5<span>,
            </span><span>"</span><span>encoding</span><span>"</span>: <span>"</span><span>utf-8</span><span>"</span>,  <span>#</span><span> 日志文件的编码,再也不用担心中文log乱码了</span>
<span>        },
    },
    </span><span>"</span><span>loggers</span><span>"</span><span>: {
        </span><span>#</span><span> logging.getLogger(__name__)拿到的logger配置</span>
        <span>""</span><span>: {
            </span><span>"</span><span>handlers</span><span>"</span>: [<span>"</span><span>default</span><span>"</span>, <span>"</span><span>console</span><span>"</span>],  <span>#</span><span> 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕</span>
            <span>"</span><span>level</span><span>"</span>: <span>"</span><span>DEBUG</span><span>"</span><span>,
            </span><span>"</span><span>propagate</span><span>"</span>: True,  <span>#</span><span> 向上(更高level的logger)传递</span>
<span>        },
    },
}


</span><strong><span>#</span><span> (*****)注意4:定义日志函数,传入的参数可以是日志信息中的"用户id"或者"用户名字",也可以是某一类型的统称</span></strong>
<span>def</span><span> get_logger(user_type):
    </span><span>#</span><span> 1.加载log配置字典到logging模块的配置中</span>
<span>    logging.config.dictConfig(LOGGING_DIC)
    </span><span>#</span><span> 2.获取日志对象</span>
    <span>#</span><span> logger = logging.getLogger("user")</span>
    <span>#</span><span> logger = logging.getLogger("bank")</span>
    <span>#</span><span> logger = logging.getLogger("shop")</span>
    logger =<span> logging.getLogger(user_type)
    </span><span>return</span><span> logger
<br></span><span># 调用函数,记录日志<br>#</span><span> 通过logger日志对象,调用内部的日志打印</span>
logger = get_logger(<span>"</span><span>user</span><span>"</span>)    <span>#</span><span> 这里的参数为日志信息中的"用户id"或者"用户名字"</span><span>
#</span><span> 调用获取日志函数的日志对象</span><span>
#</span><span> logger.debug("学习不要浮躁,一步一个脚印!")</span>
logger.info(<span>"</span><span>学习不要浮躁,一步一个脚印!</span><span>"</span>)    <span>#</span><span> debug和info均为日志等级,用info即可,<strong>info后面传入的内容就是需要记录日志的内容</strong></span></span>

www#gaodaima.com来源[email protected]搞@^&代*@码网搞代码

  注意:前三个注意点可以根据情况修改设置,第四个注意点是log的配置字典,无需修改,只需留意即可。

  执行结果:

[INFO][2020-10-22 20:23:07,405][04 logging模块.py:100]学习不要浮躁,一步一个脚印!

 

 

  logging模块应用输出示例:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:logging模块的使用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址