day23-python之日志 re模块
1.logging
- import logging
- #-----------------------------------logging.basicConfig
- logging.basicConfig(
- level=logging.DEBUG,
- filename="logger.log",
- filemode="w",
- format="%(asctime)s %(filename)s[%(lineno)d] %(message)s"
- )
- #
- # logging.debug('hello')
- # logging.info('hello')
- # logging.warning('warning message')
- # logging.error('error message')
- # logging.critical('critical message')
- #-----------------------------------logger
- def logger():
- logger=logging.getLogger()
- fh=logging.FileHandler("test_log")
- #ch=logging.StreamHandler()
- fm=logging.Formatter("%(asctime)s %(message)s")
- fh.setFormatter(fm)
- #ch.setFormatter(fm)
- logger.addHandler(fh)
- #logger.addHandler(ch)
- logger.setLevel("DEBUG")
- return logger
- # #----------------------
- logger=logger()
- #
- # logger.debug("debug")
- # logger.info("info")
- # logger.warning("warning")
- # logger.error("error")
- # logger.critical("critical")
- #--------------------------------------------------
- import logging
- #
- logger=logging.getLogger()
- logger1 = logging.getLogger('mylogger')
- logger1.setLevel(logging.DEBUG)
- logger2 = logging.getLogger('mylogger')
- logger2.setLevel(logging.WARNING)
- fh=logging.FileHandler("test_log-new")
- ch=logging.StreamHandler()
- logger.addHandler(ch)
- logger.addHandler(fh)
- logger1.addHandler(fh)
- logger1.addHandler(ch)
- logger2.addHandler(fh)
- logger2.addHandler(ch)
- # logger.debug('logger debug message')
- # logger.info('logger info message')
- # logger.warning('logger warning message')
- # logger.error('logger error message')
- # logger.critical('logger critical message')
- # logger1.debug('logger1 debug message')
- # logger1.info('logger1 info message')
- # logger1.warning('logger1 warning message')
- # logger1.error('logger1 error message')
- # logger1.critical('logger1 critical message')
- logger2.debug('logger2 debug message')
- logger2.info('logger2 info message')
- logger2.warning('logger2 warning message')
- logger2.error('logger2 error message')
- logger2.critical('logger2 critical message')
2.configparser
- import configparser
- # config = configparser.ConfigParser() #config={}
- # #
- # #
- # #
- # #
- # config["DEFAULT"] = {'ServerAliveInterval': '45',
- # 'Compression': 'yes',
- # 'CompressionLevel': '9'}
- # #
- # #
- # #
- # config['bitbucket.org'] = {}
- # config['bitbucket.org']['User'] = 'hg'
- # #
- # config['topsecret.server.com'] = {}
- # topsecret = config['topsecret.server.com']
- # topsecret['Host Port'] = '50022' # mutates the parser
- # topsecret['ForwardX11'] = 'no' # same here
- # #
- # #
- # #
- # with open('example.ini', 'w') as f:
- # config.write(f)
- #------------------------------------------------------增删改查、
- import configparser
- #
- config = configparser.ConfigParser()
- #---------------------------------------------查
- # print(config.sections()) #[]
- config.read('example.ini')
- # #
- # print(config.sections()) #['bitbucket.org', 'topsecret.server.com']
- # print('bitbucket.org' in config)# False
- #
- # print(config['bitbucket.org']['User']) # hg
- #
- # print(config['DEFAULT']['Compression']) #yes
- #
- # print(config['topsecret.server.com']['ForwardX11']) #no
- # for key in config['bitbucket.org']:
- # print(key)
- #
- #
- # print(config.options('bitbucket.org'))#['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
- # print(config.items('bitbucket.org')) #[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'hg')]
- #
- # print(config.get('bitbucket.org','compression'))#yes
- #
- #
- # #---------------------------------------------删,改,增(config.write(open('i.cfg', "w")))
- #
- #
- config.add_section('yuan')
- config.set('yuan','k1','')
- #
- config.remove_section('topsecret.server.com')
- config.remove_option('bitbucket.org','user')
- # #
- #
- config.write(open('i.cfg', "w"))
3.md5加密
- # import hashlib
- # obj=hashlib.md5()
- #
- # obj.update("admin".encode("utf8"))
- # print(obj.hexdigest()) #21232f297a57a5a743894a0e4a801fc3
- # obj.update("adminroot".encode("utf8"))
- # print(obj.hexdigest())# 4b3626865dc6d5cfe1c60b855e68634a
- # 4b3626865dc6d5cfe1c60b855e68634a
day23-python之日志 re模块的更多相关文章
- python中日志logging模块的性能及多进程详解
python中日志logging模块的性能及多进程详解 使用Python来写后台任务时,时常需要使用输出日志来记录程序运行的状态,并在发生错误时将错误的详细信息保存下来,以别调试和分析.Python的 ...
- [ Python入门教程 ] Python中日志记录模块logging使用实例
python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...
- python 的日志logging模块
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info messag ...
- python的日志logging模块性能以及多进程
写在前面: 日志是记录操作的一种好方式.但是日志,基本都是基于文件的,也就是要写到磁盘上的.这时候,磁盘将会成为一个性能瓶颈.对于普通的服务器硬盘(机械磁盘,非固态硬盘),python日志的性能瓶颈是 ...
- python 的日志logging模块学习
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info messa ...
- Python之日志 logging模块
关于logging模块的日志功能 典型的日志记录的步骤是这样的: 创建logger 创建handler 定义formatter 给handler添加formatter 给logger添加handler ...
- Python中日志logging模块
# coding:utf-8 import logging import os import time class Logger(object): def __init__(self): # 创建一个 ...
- python标准日志模块logging及日志系统设计
最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下. python的标准库里的日志系统从Python2.3开始支持.只要import logging这个模块即可使用.如果你想开发 ...
- python标准日志模块logging的使用方法
参考地址 最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下.python的标准库里的日志系统从Python2.3开始支持.只要import logging这个模块即可使用.如果 ...
- 【python】日志系统
来源: http://blog.csdn.net/wykgf/article/details/11576721 http://www.jb51.net/article/42626.htm http:/ ...
随机推荐
- 利用Python进行数据分析 2017 第二版 项目代码
最近在学习<利用Python进行数据分析>,找到了github项目的地址, 英文版本,中文版本 (非常感谢翻译中文的作者). mark一下,方便后边学习查找.
- 浅谈堆-Heap(一)
应用场景和前置知识复习 堆排序 排序我们都很熟悉,如冒泡排序.选择排序.希尔排序.归并排序.快速排序等,其实堆也可以用来排序,严格来说这里所说的堆是一种数据结构,排序只是它的应用场景之一 Top N的 ...
- 开源的SSH框架优缺点分析
开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2) 丰富的标签库,大大提高了开发的效率: 3) Str ...
- Quality of Service (QoS) in LTE
Background: Why we need QoS ? There are premium subscribers who always want to have better user expe ...
- 前端专业术语: shim 和 Polyfill,了解下
在学习和使用 JavaScript 的时候,我们会经常碰到两个术语:shim 和 polyfill.它们有许多定义和解释,意思相近又有差异. Shim Shim 指的是在一个旧的环境中模拟出一个新 A ...
- net 提供了Thread类用于线程的操作
net 提供了Thread类用于线程的操作. 当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程.后台线程将会随着主线程的推出而退出.后台线程不妨碍程序的 ...
- SpringMVC06Exception 异常处理
1.配置web.xml文件 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...
- vue resource patch方法的传递数据 form data 为 [object Object]
今天在测试 iblog 登录时,传送过去的数据总是 [object Object],以至于后台识别不出来. vue 使用了 vueResource 组件,登录方法为 patch. 经过探索,终于在官网 ...
- selenium+phantomjs报错:Unable to find a free port的分析和解决
selenium+phantomjs报错:Unable to find a free port的分析和解决 Table of Contents 1. 现象 2. 分析 3. 解决办法 1 现象 在做项 ...
- windows 右键崩溃 解决方法
[问题描述] 选中一个文件,右键之后无法弹出菜单,最后显示: 资源管理器未响应. [参考方法] https://www.jianshu.com/p/d627c941467a [方法介绍] 1.下载Sh ...