举个例子:比如我们要实现根据当前时间的年月日来新建目录来存放每天的日志,当前时间作为日志文件名称;代码如下:

  

#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
import logging
import os.path
import time project_path = 'Exercise' #定义项目目录 class Logger(object):
def __init__(self):
'''''
指定保存日志的文件路径,日志级别,以及调用文件
将日志存入到指定的文件中
'''
current_time=time.strftime('%Y%m%d%H%M',
time.localtime(time.time())) # 返回当前时间
current_path=os.path.dirname(os.path.abspath(project_path)) # 返回当前目录
path1=current_path.split(project_path) #指定分隔符对字符串进行切片
path2=[path1[0], project_path]
path3=''
new_name=path3.join(path2) + '/logs/' #在该路径下新建下级目录 dir_time = time.strftime('%Y%m%d', time.localtime(time.time())) #返回当前时间的年月日作为目录名称
isExists=os.path.exists(new_name + dir_time) #判断该目录是否存在
if not isExists:
os.makedirs(new_name + dir_time)
print(new_name + dir_time + "目录创建成功") else:
# 如果目录存在则不创建,并提示目录已存在
print(new_name + "目录 %s 已存在" % dir_time) try:
# 创建一个logger(初始化logger)
self.log = logging.getLogger()
self.log.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件 # 如果case组织结构式 /testsuit/featuremodel/xxx.py , 那么得到的相对路径的父路径就是项目根目录
log_name = new_name + dir_time + '/' + current_time + '.log' #定义日志文件的路径以及名称 fh = logging.FileHandler(log_name)
fh.setLevel(logging.INFO) # 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.INFO) # 定义handler的输出格式
formatter = logging.Formatter('[%(asctime)s] - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter) # 给logger添加handler
self.log.addHandler(fh)
self.log.addHandler(ch)
except Exception as e:
print("输出日志失败! %s" % e) # 日志接口,用户只需调用这里的接口即可,这里只定位了INFO, WARNING, ERROR三个级别的日志,可根据需要定义更多接口 def info(cls,msg):
cls.log.info(msg)
return def warning(cls,msg):
cls.log.warning(msg)
return def error(cls, msg):
cls.log.error(msg)
return if __name__ == '__main__': logger = Logger()
logger.info('This is info')
logger.warning('This is warning')
logger.error('This is error')

python实现根据当前时间创建目录并输出日志的更多相关文章

  1. 转【Python】同时向控制台和文件输出日志logging

    #-*- coding:utf-8 -*-import logging # 配置日志信息logging.basicConfig(level=logging.DEBUG, format='%(ascti ...

  2. Python中日期和时间格式化输出的方法

    本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...

  3. python操作日期和时间的方法

    不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...

  4. 【转】Python之日期与时间处理模块(date和datetime)

    [转]Python之日期与时间处理模块(date和datetime) 本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常 ...

  5. python入门6 字符串拼接、格式化输出

    字符串拼接方式    1  使用 + 拼接字符串 2 格式化输出:%s字符串 %d整数 %f浮点数 %%输出% %X-16进制 %r-原始字符串 3 str.format() 代码如下: #codin ...

  6. python中常用的时间操作

    python中常用的时间模块有time和datetime,以下是这两个模块中常用的方法: #先引入模块 import timefrom datetime import datetiem, timezo ...

  7. 【转】kettle 的内存设置及输出日志的时间类型

    本文转载自:http://blog.csdn.net/dqswuyundong/archive/2010/10/19/5952004.aspx 设置kettle的内存 REM ************ ...

  8. Python标准库02 时间与日期 (time, datetime包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python具有良好的时间和日期管理功能.实际上,计算机只会维护一个挂钟时间(wa ...

  9. Python同时向控制台和文件输出日志logging的方法 Python logging模块详解

    Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...

随机推荐

  1. akka cluster sharding

    cluster sharding 的目的在于提供一个框架,方便实现 DDD,虽然我至今也没搞明白 DDD 到底适用于是什么场合,但是 cluster sharding 却是我目前在做的一个 proje ...

  2. Fidder

    第一步:下载Fiddler,下载链接: http://fiddler2.com/get-fiddler 下载完成之后,傻瓜式的安装一下了! 第二步:设置Fiddler 打开Fiddler, Tools ...

  3. C++ Release编译时如何对某段代码不进行优化

    optimize#pragma optimize( "[optimization-list]", {on | off} ) Feature Only in Professional ...

  4. .Net Core 部署到Ubuntu 16.04 中的步骤

    需要安装的工具 .Net Core Nginx反向代理服务器(相当于Windows下的IIS) Supervisor(进程管理工具) .Net Core安装方法请参阅 官方文档 安装完成后就可以在项目 ...

  5. Excel如何实现两个工作表数据的对比

    https://jingyan.baidu.com/article/63f236281f17650208ab3d97.html Sub 数据对比() Dim i As Integer Dim j As ...

  6. Vue----目录结构

    目录结构: (1):build:---------------------------------------------------------------------------------:保存 ...

  7. day3 三、基本数据类型和运算符

    一.多行注释和单行注释 """ 多行注释 多行注释 多行注释 """ # 单行注释 # print('hello world') # pri ...

  8. python-Beautiful rose

    热爱python,热爱生活,python需要浪漫,让我带大家走进浪漫的国度...写的不好的地方请大佬指教 import turtle import time class Rose: def __ini ...

  9. hdu3746 Cyclic Nacklace【nxt数组应用】【最小循环节】

    Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  10. 配置hadoop集群,完全分布式模式

    [/soft/hadoop/etc/hadoop] [hdfs-site.xml] <configuration> <property> <name>dfs.rep ...