使用规范目录结构的好处
- 使项目结构更清晰
- 提高可读性
规范目录结构不是固定,可以根据实际需求进行添加修改 常见目录如下:
bin 存放执行文件
conf 存放配置文件
core 存放核心业务逻辑
db 存放数据处理相关
lib 存放公共代码和第三方模块
readme 是一个文本文件,用于描述应用程序
"""
logging 日志模块
什么是日志?
就像生活中的日记,用于记录什么时间发生了什么事情 为什么要记日志?
就是为了在以后程序出现问题的时候,能够通过日志来找到问题的原因 怎么记日志
可以自己实现
当然由功能更加强大的logging模块 """ import logging # 最基本的用法
# logging.debug('debug')
# logging.info('info')
# logging.warning('warning')
# logging.error('error')
# logging.critical('critical') # logging模块将日志分为五种级别
# 为什么要分级别?是为了在后期查看日志时候方便定位
# logging的默认显示级别为WARNING,低于WARNING级别的都不会显示
# 默认的输出位置是终端
# 默认的输出格式WARNING(级别):root(日志生成器的名字):warning(输出的日志信息) # 修改默认的行为
# 日志模块中的四种角色
"""
1.logger 日志生成器 生成一条日志
2.filter 日志的过滤器 对logger生成的日志进行过滤
3.formatter 处理格式的 设置日志的输出格式
4.handler 处理器 最终负责将日志输出到指定位置
"""
def funt():
# 自定义日志生成器
# 可以为生成器指定名字,是因为可以存在多个生成器
logger = logging.getLogger('logger1')
# 设置日志级别
# logging模块内部使用整数区分级别
# 此处可以直接写对应参数,但是建议使用常量
logger.setLevel(logging.WARNING)
# logger.warning('这是一个警告信息!')
# 创建一个处理器
handler = logging.FileHandler('test.log', 'a', encoding='utf-8')
fmt = logging.Formatter('%(asctime)s %(funcName)s %(message)s')
handler.setFormatter(fmt) # 将handler与生成器绑定
# 可以为一个生成器指定多个处理器
logger.addHandler(handler)
logger.error('这是一个错误信息')
print('生成日志') funt()

day18的更多相关文章

  1. day18<集合框架+>

    集合框架(Map集合概述和特点) 集合框架(Map集合的功能概述) 集合框架(Map集合的遍历之键找值) 集合框架(Map集合的遍历之键值对对象找键和值) 集合框架(Map集合的遍历之键值对对象找键和 ...

  2. day18 集合框架(JCF)

    集合框架(JCF)java collections framework 框架:为了实现某一目的/功能而预先提供的一系列封装好的具有继承或实现关系的类与接口. 1.这种框架是高性能的,对基本类集(动态数 ...

  3. 阶段01Java基础day18集合框架04

    18.01_集合框架(Map集合概述和特点) A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接 ...

  4. [Day18]集合框架Collection、迭代器、增强for循环以及泛型

    1.集合 1.1集合-本身是一个存储的容器 集合类的基本接口是Collection接口,这个接口有两个基本方法 (1)boolean add(E element) 用于向集合中添加元素,如果添加元素确 ...

  5. Java 集合系列之一:JCF集合框架概述

    容器,就是可以容纳其他Java对象的对象.Java Collections Framework(JCF)为Java开发者提供了通用的容器 java集合主要划分为四个部分: Collection(Lis ...

  6. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  7. 【目录】JUC集合框架目录

    JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...

  8. java面试题——集合框架

    先来看一下集合框架关系图 Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └S ...

  9. Java使用实现面向对象编程:第七章集合框架的解读=>重中之重

    对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...

  10. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

随机推荐

  1. Xcode工程编译错误之iOS开发之The Xcode build system has crashed. Please close and reopen your workspace

    解决方法: . 删除DerivedData . 参照上面的链接设置:File -> Workspace Settings -> Build System -> Legacy Buil ...

  2. Python_tkinter(4)_上传文件

    1.上传单个文件 import tkinter as tk from tkinter import filedialog def upload_file(): selectFile = tk.file ...

  3. war 包tomcat部署和maven的tomcat插件部署的不同

    不用插件 1在linux服务器上下载号tomcat 或者上传tomcat 2上传war包,最好创建一个目录房war包,和tomcat 3解压war包,jar -xvf war   或者unzip wa ...

  4. Django框架详细介绍---Form表单

    一.概述 在HTML页面中,利用form表单向后端提交数据时,需要编写input等输入标签并用form标签包裹起来,与此同时,在很多应用场景之下需要对用户输入的数据校验,例如注册登录页面中,校验用户注 ...

  5. SQL kaggle learn with as excercise

    rides_per_year_query = """ SELECT EXTRACT(YEAR FROM trip_start_timestamp) AS year ,CO ...

  6. 用Nuget部署程序包

    用Nuget部署程序包 Nuget是.NET程序包管理工具(类似linux下的npm等),程序员可直接用简单的命令行(或VS)下载包.好处: (1)避免类库版本不一致带来的问题.GitHub是管理源代 ...

  7. ajax 防止重复提交

    参考链接:http://www.hollischuang.com/archives/931 http://blog.csdn.net/everything1209/article/details/52 ...

  8. python 文件重命名

    将文件夹中的.jsp重命名为.html import os def rename(path): files = os.listdir(path) for file in files: dir = os ...

  9. Flask-Migrate

    终于到了Flask-Migrate,之前在看Flask-SQLAlchemy的时候, Flask支持 makemigration / migrate 吗? 答案在这里该诉你,如果你同时拥有两个三方组件 ...

  10. python '%r'或者'{!r}'的意思

    转载:https://blog.csdn.net/a19990412/article/details/80149112 这两个都是python的转译字符, 类似于%r, %d,%f >>& ...