zoukankan      html  css  js  c++  java
  • 5,db的解决方法,日志集成

    前面我们创建好了app工厂,但是db的问题还没有解除,我们回到manage

     把app删除,解开注释,发现db报红。因为db在__init__.py的函数里面找不到。 

    我们在上面写

    db=SQLAlchemy(app)
    

     把函数里面的注释掉。

    这里我们点进源码看到他给了mysql一个默认的值,所以我们在函数里面写。

      db.init_app(app)
    

      直接把app扔进去就行

    日志集成

    集成代码放在info里面的__init__.py里面

    # 设置日志的记录等级
    logging.basicConfig(level=logging.DEBUG) # 调试debug级
    # 创建日志记录器,指明日志保存的路径(前面的logs为文件的名字,需要我们手动创建,后面则会自动创建)、每个日志文件的最大大小、保存的日志文件个数上限。
    file_log_handler = RotatingFileHandler("./logs/log", maxBytes=1024*1024*100, backupCount=10)
    # 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息
    formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s')
    # 为刚创建的日志记录器设置日志记录格式
    file_log_handler.setFormatter(formatter)
    # 为全局的日志工具对象(flask app使用的)添加日志记录器
    logging.getLogger().addHandler(file_log_handler)

    这时我们发现有很多报红,我们需要导包,鼠标移动到报红处,alt+回车。

    import logging
    from config import configs

    分别导入这几个包。然后我们运行发现会报错,那是因为我们没有创建l放日志的文件夹。所以我们在项目底下创建一个叫logs的文件,创建好后再运行。发现还会报错,我们只需要把logs文件前一个点去掉就行,有的不用也可以

     运行成功后我们发现logs,里面出现一个名为log的文本。

     但是不同的开发级别有不同的日志,这个问题和格式工厂创建app是差不多的效果,所以我们仿照格式工厂来创建不同日志等级的一个编写

    我们建立一个函数,把日志弄进去

    def setup_log():

    现在这是一个函数,我们在创建app之前调用。

    我们在创建app的函数里写

    setup_log()

    因为是在同一个文件夹里面,而且steup_log在前面,所以可以调用。现在我们大致猜到我们的日志函数也需要接收一个参数,我们就写level。

    def setup_log(level):

    而这个也写

     它从函数里拿到什么就调取什么要的等级。

    而我们刚刚写的app函数里面也传进一个参数,我们来到config,导入

    import logging

    下面的开发环境,把pass给删了,写

    LEVEL_LOG =logging.DEBUG

    生产环境也添加,

    LEVEL_LOG = logging.ERROR

    然后回到__init__.py里面写

     setup_log(configs[env].LEVEL_LOG)

    然后运行就成功了。

    以下我理解,

    我们模拟app工厂的方式,我们在里面分别调试好日志等级,在和app一起出来,然后在__init.py里面我们在app里面调用,传到config里面,config里面有个函数__init__.py 里面互通,然后也就拿到了日志等级大致就这样。

  • 相关阅读:
    TMS 例子63 分组,子node
    读写注册表 registrykey 创建删除
    如何打开 系统信息窗体和 DirectX诊断工具
    Socket 类通信例子-第24章
    判断IP地址是否合法类
    MySQL存储过程与存储函数的区别
    电脑设定自动开关机,并记录开关机时间
    WPS 表格筛选两列相同数据-完美-2017年11月1日更新
    通过TStringList保存csv文件,只要循环.Add表格里面的每行记录进去,保存即可
    Delphi中滚动文字的应用
  • 原文地址:https://www.cnblogs.com/manjian/p/13765107.html
Copyright © 2011-2022 走看看