Python_基础_(llogging,)

一,logging模块

import logging

logging.debug("")
logging.info("")
logginf.warning("")
logging.error("")
logging.critical("")

# 默认的级别为warning

# level总共分5个级别:debug < info< warning< error< critical 

 ## 设置日志级别,日志格式,输出位置

import logging

logging.basicConfig(
    level=logging.DEBUG,
    filename = "logger.log",
    filemode = "w",
    format = "%(asctime)s %(lineno)d %(message)s %(filename)s"
)
logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warning(‘warning message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)

# 在输出文件logging.log中 当日志级别设置为debug时,输出大于等于debug的日志信息
2018-12-18 22:46:05,141 16 debug message 日志模块.py
2018-12-18 22:46:05,190 17 info message 日志模块.py
2018-12-18 22:46:05,190 18 warning message 日志模块.py
2018-12-18 22:46:05,190 19 error message 日志模块.py
2018-12-18 22:46:05,190 20 critical message 日志模块.py

# 当日志的级别设置为 warning 输出大于等于Warning的日志信息
2018-12-18 22:50:55,063 12 warning message 日志模块.py
2018-12-18 22:50:55,063 13 error message 日志模块.py
2018-12-18 22:50:55,063 14 critical message 日志模块.py

## 

filename # 指定日志的文件ming
filemode # 和file函数的意义相同,指定日志的打开模式,"w","a"
datefmt # 指定日期的时间格式
level # 设置日志的级别
format # 指定输出的格式和内容
  %(name)s # 日志的名字
  %(levelno)s # 数字形式的日志级别
  %(levelname)s # 文本形式的日志级别
  %(pathname)s # 调用日志输出函数的模块的完整路径名,可能没有
  %(filename)s # 调用日志输出函数的模块的文件名
  %(module)s # 调用日志输出函数的模块名
  %(funcName)s # 调用日志输出函数的函数名
  %(lineno)d # 调用日志输出函数的语句所在的代码行
  %(created)f # 当前时间,用UNIX标准的表示时间的浮 点数表示
  %(relativeCreated)d # 输出日志信息时的,自Logger创建以 来的毫秒数
  %(asctime)s # 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
  %(thread)d # 线程ID。可能没有
  %(threadName)s # 线程名。可能没有
  %(process)d # 进程ID。可能没有
  %(message)s # 用户输出的消息

## logger对象

logger = logging.getLogger()    # 创建logger对象

fh = loggign.FileHandler("test.log")    # 可向文件中发送内容
ch = logging.StreamHandler()            # 可向控制台输送内容
fm = logging.Formatter("%(asctime)s %(lineno)d %(message)s %(filename)s")    # 格式

fh.setFormat(fm)    # 给输出到文件的设置格式
ch.setFormat(fm)    # 给输出到控制台的设置格式

logger.addHandler(fh)    # 给logger
logger.addHandler(ch)    # 给logger

logger.setLevel("DEBUG") # 可对logger设置级别

logger.debug("hello")
logger.info("hello")
logger.waring("hello")
logger.error("hello")
logger.critical("hello")

## 日志补充

import logging
logger1 = logging.getlogger("mylogger")
logger1.setLevel(logging.DEBUG)

logger2 = logging.getlogger("mylogger")
logger2.setLevel(logging.INFO)

# 注实际上logger1与logger2指向同一个对象,指向mylogger
设置级别时,将logger1设为DEBUG,将logger2设为INFO,实际上两个都为INFO,个输出4条日志
.
.
.
logger1.debug("hello")
logger1.info("hello")
logger1.waring("hello")
logger1.error("hello")
logger1.critical("hello")

logger2.debug("hello")
logger2.info("hello")
logger2.waring("hello")
logger2.error("hello")
logger2.critical("hello")

二,configparser 模块

## 配置文件解析模块

## 注:配置文件中不区分大小写

# 常见的配置文件

待完成...

原文地址:https://www.cnblogs.com/Doaoao/p/10140809.html

时间: 2024-11-01 18:05:47

Python_基础_(llogging,)的相关文章

【5】python_基础_字符集、列表推导式、模块

Python基础 1 字符集 字符集编码发展历程简介:2进制(0/1)→ASCII表(数字/英文/符号)→gb2312(简体中文) →gbk(汉字) →Unicode(万国码,存储空间加倍) →UTF-8 跨国官方语言兼容:本国语言字符集→转换成Unicode→转换成外国语言字符集 python2的默认字符是ascii,python3的默认字符是utf-8 python2不支持中文,报错:no-ascii,解决方案:在py文件头部加上# -*- coding:utf-8 -*- 2 列表推导式(

【4】python_基础_集合、json模块、函数

1 集合(天生去重) 1.1 定义集合 集合是无序的 1 # 定义集合:天生去重 2 nums = [1,1,2,3,4,4] 3 num_set = set (nums) # 1.使用set将其他类型转成集合(去重) 4 print('1======',num_set) # {1, 2, 3, 4} 5 6 nums2 = {1,1,2,3,4,4} # 2.直接定义集合 7 print ('2======',nums2) # {1, 2, 3, 4} 8 9 nums3 = set() #

Python_基础_(面向对象进阶)

一,isinstance(obj,cls) issubclass(sub,super) isinstance(obj,cls) # 判断对象obj是否是cls的一个实例 class Test: pass t = Test() print(isinstance(t,Test)) # True issubclass(sub,super) # 判断类sub是否为类super的子类 class Test: pass class Sub(Test): pass print(issubclass(Sub,T

Power Network(最大流基础_增广路算法:多源多汇,自建总源点和总汇点)

 Power NetworkCrawling in process... Crawling failed Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description A power network consists of nodes (power stations, consumers and dispatchers) connected by p

黑马程序员_Java基础_接口

------- android培训.java培训.期待与您交流! ---------- 0.接口知识体系 Java接口的知识体系如下图所示,掌握下图中的所有知识就可精通接口. 1.接口概论 1)接口概念 接口是从多个相似类中抽象出来的规范,接口中不包含普通方法,所有方法都是抽象方法,接口不提供实现.接口体现的是规范和实现分离的哲学.规范和实现分离正是接口的好处,让软件系统的各个组件之间面向接口耦合,是一种松耦合的设计.接口定义的是多个类共同的公共行为规范,定义的是一组公用方法. 2)接口与抽象类

memcached完全剖析--1. memcached的基础 _转

2008-07-10 memcached完全剖析--1. memcached的基础 翻译一篇技术评论社的文章,是讲memcached的连载.fcicq同学说这个东西很有用,希望大家喜欢. 发表日:2008/7/2 作者:长野雅广(Masahiro Nagano) 原文链接:http://gihyo.jp/dev/feature/01/memcached/0001 我是mixi株式会社开发部系统运营组的长野. 日常负责程序的运营.从今天开始,将分几次针对最近在Web应用的可扩展性领域 的热门话题m

IOS基础_ UICollectionView的简单使用

和表格视图类似 UICollectionView的使用有两种方法 一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView: 另外一种是创建一个UIConllectionView 视图放在普通的UIViewController里面. 我们用第二种 首先声明先声明一个重用标示  和实现委托 #define _CELL @"acell" @interface yxpViewController ()<UICol

Drainage Ditches(最大流基础_增广路算法)

 Drainage DitchesCrawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover p

算法基础_递归_求杨辉三角第m行第n个数字

问题描述: 算法基础_递归_求杨辉三角第m行第n个数字(m,n都从0开始) 解题源代码(这里打印出的是杨辉三角某一层的所有数字,没用大数,所以有上限,这里只写基本逻辑,要符合题意的话,把循环去掉就好): import java.util.Scanner; /** * 求杨辉三角第m层第n个数字 * @author Administrator * */ public class Demo05 { public static int f(int m,int n) { if(n==0)return 1