前面程序整合加自定义日志,日志会记录重目前还在找问题

前面程序整合加自定义日志

1.文件摆放

├── xxxx
│   ├── src.py
│   └── fil_mode.py
│   └── data_time.py
│   └── loading.py
│   └── data_time.py
│   └── logger.py

2.运行文件

1.run

src.py

# 导入需要用到的所有内置模块
import logging
import time
import json
import os
from fil_mode import *
from loading import *
from data_time import *
from logger import *

#全局所需要用到的变量
login_name = [None] #用全局可变的受局部影响
goods_dict = {
    '0':['草泥马',100],
    '1':['《nick写真集》',1],
    '2':['奥特曼玩偶',50],
    '3':['钢铁侠真人套装',10000],
    '4':['《产品经理强哥自传》',188],
    '5':['《马叉虫是如何炼成的》',888],
    '6':['《YwY自传》',8888888888888]
}
user_car = dict()

#功能模块
#注册
def register():
    print('\033[1;34;46m\t\t欢迎使用注册功能\t\t\033[0m')
    register_name_Ture = 0
    name_list = fil_info_name_list()
    while register_name_Ture==0:
        print('\033[1;34;43m\t\t请您输入注册账号\t\t\033[0m')
        print('\033[1;34;43m\t\t账号由全英文组成\t\t\033[0m')
        print('\033[1;31;m输入Q退出程序\t\033[0m')
        register_name = input('请输入:').strip()
        if register_name == 'Q':
            loading()
            return False
        elif len(register_name.replace(' ','')) != len(register_name):
            print('\033[1;31;m输入账号中有宫格请重新输入\t\033[0m')
            continue
        elif not register_name.isalpha():
            print('\033[1;31;m输入账号不是由全英文组成请重新输入\t\t\033[0m')
            continue
        elif register_name in fil_info_name_list():
            print('\033[1;31;m输入账号以存在请重新输入\t\t\033[0m')
        else:
            register_name_Ture =1
            print('\033[1;34;43m\t\t账号名已注册成功\t\t\033[0m')
            while True:
                print('\033[1;34;43m\t\t请您输入注册密码\t\t\033[0m')
                print('\033[1;34;43m\t\t账号由全数字组成\t\t\033[0m')
                register_pwd = input('请输入:').strip()
                if len(register_pwd.replace(' ', '')) != len(register_pwd):
                    print('\033[1;31;m输入密码中有宫格请重新输入\t\033[0m')
                    continue
                elif not register_pwd.isdigit():
                    print('\033[1;31;m输入密码不是由全数字组成请重新输入\t\t\033[0m')
                    continue
                else:
                    print('\033[1;32;m\t\t注册成功\t\t\033[0m')
                    register_info_dict = {'name':None,'pwd':None,'balance':0,'integral':0,'freeze':0}
                    register_info_dict['name'] = register_name
                    register_info_dict['pwd'] = register_pwd
                    fil_add_info_dict(register_info_dict)
                    print('注册成功')
                    loading()
                    break
    return True

#登入
def login():
    print('\033[1;34;46m\t\t欢迎使用登入功能\t\033[0m')
    name_list = fil_info_name_list()
    login_name_Ture = 0
    login_count =0
    if not name_list:
        print('\033[1;31;m没有用户注册请先注册\033[0m')
        loading()

        return False
    global login_name
    if not login_name[0]:
        while login_name_Ture == 0:
            print('\033[1;34;43m\t\t请您输入账号\t\t\033[0m')
            print('\033[1;31;m输入Q退出程序\t\033[0m')
            login_username = input('请输入:').strip()
            if login_username == 'Q':
                loading()
                return False
            elif len(login_username.replace(' ', '')) != len(login_username):
                print('\033[1;31;m输入账号中有宫格请重新输入\t\033[0m')
                continue
            elif not login_username.isalpha():
                print('\033[1;31;m输入账号不为全英文\t\t\033[0m')
                continue
            elif not login_username in fil_info_name_list():
                print('\033[1;31;m输入账号不存在\t\t\033[0m')
                continue
            else:
                login_name_Ture = 1
                print('\033[1;34;43m\t\t账号输入正确\t\t\033[0m')
                while login_count < 5:
                    print(f'\033[1;34;43m\t你有{5-login_count}次机会输入密码\t\t\033[0m')
                    print('\033[1;34;43m\t\t请您输入密码\t\t\033[0m')
                    login_pwd = input('请输入:').strip()
                    if len(login_pwd.replace(' ', '')) != len(login_pwd):
                        print('\033[1;31;m输入密码中有宫格请重新输入\t\033[0m')
                        login_count += 1
                        continue
                    elif not login_pwd.isdigit():
                        print('\033[1;31;m输入密码不为全数字\t\t\033[0m')
                        login_count += 1
                        continue
                    else:
                        user_dict = fil_userinfo(login_username)
                        if user_dict['pwd'] != login_pwd:
                            print('\033[1;31;m输入密码错误请重新输入\t\t\033[0m')
                            login_count += 1
                            continue
                        else:
                            if user_dict["freeze"] == 0:
                                print('\033[1;32;m\t\t登入成功\t\t\033[0m')
                                login_name[0] = login_username
                                loading()
                                logger_login(login_username)
                                return True
                            else:
                                print('\033[1;31;m登入失败\t\t\033[0m')
                                print(f'\033[1;31;m账户{login_username}以被冻结\t\t\033[0m')
                                loading()

                                return False
                fil_info_frzzez_amend(login_username,1)
                print('\033[1;31;m\t\t登入失败\t\t\033[0m')
                print(f'\033[1;31;m{login_username}账号密码登入失败太多已被冻结\033[0m')
                loading()

                return False
    while True:
        print(38 * '-')
        print("\033[0;40;46m\t\t欢迎使用登入功能\t\t\t\033[0m")
        print(f'账号{login_name[0]}已经登入')
        chiose = input('输入1当前账号退出并退出登入程序\n'
                       '输入2当前账号退出并重新登入程序\n'
                       '输入Q退出当前程序')
        print(38 * '-')
        if chiose == '1':
            logger_exit(login_name[0])
            login_name[0] = None

            return False
        elif chiose == '2':
            logger_exit(login_name[0])
            login_name[0] = None
            login()
            return
        elif chiose == 'Q':
            loading()
            return True
        else:
            print('\033[1;31;m请正确输入')

#充值
def top_up():
    print('\033[1;34;46m\t\t欢迎使用充值功能\t\033[0m')
    name_list = fil_info_name_list()
    login_name_Ture = 0
    login_count =0
    if not name_list:
        print('\033[1;31;m没有用户注册请先注册\033[0m')
        loading()
        return False
    global login_name
    if not login_name[0]:
        print('\033[1;31;m没有用户登入请先登入\033[0m')
        loading()
        return False
    info_dict = fil_userinfo(login_name[0])
    print(f"\033[1;32;m当前账户{login_name[0]}可用余额为{info_dict['balance']}元\033[0m")
    while True :
        print('\033[1;34;43m\t\t请您输入充值的金额\t\t\033[0m')
        print('\033[1;31;m输入Q退出程序\t\033[0m')
        balance = input('请输入:').strip()
        if balance == 'Q':
            loading()
            return False
        elif len(balance.replace(' ', '')) != len(balance):
            print('\033[1;31;m输入金额中有宫格请重新输入\t\033[0m')
            continue
        elif not balance.isdigit():
            print('\033[1;31;m输入金额不为全数字\t\t\033[0m')
            continue
        else:
            balance_int = int(balance)
            info_dict['balance'] += balance_int
            fil_info_balance_amend(login_name[0],info_dict['balance'])
            print(f'\033[1;32;m充值成功\033[0m')
            print(f"\033[1;32;m当前账户{login_name[0]}可用余额为{info_dict['balance']}元\033[0m")
            print('\033[1;34;43m\t\t是否继续充值\t\t\033[0m')
            print('\033[1;31;m输入Q退出Y为继续\t\033[0m')
            while True:
                chiose = input('请输入')
                if chiose not in ['Q','Y']:
                    print(f'\033[1;32;m请好好输入\033[0m')
                elif chiose == 'Q':
                    loading()
                    return False
                else:
                    break

#购物
def shopping():

    a = '0'
    print('\033[1;34;46m\t\t欢迎使用购物功能\t\033[0m')
    name_list = fil_info_name_list()
    login_name_Ture = 0
    login_count =0
    if not name_list:
        print('\033[1;31;m没有用户注册请先注册\033[0m')
        loading()
        return False
    global login_name
    if not login_name[0]:
        print('\033[1;31;m没有用户登入请先登入\033[0m')
        loading()
        return False
    user_dict = fil_userinfo(login_name[0])
    balance = user_dict["balance"]
    while a == '0':
        print(38*'-')
        print("\033[0;30;46m\t\t输入0是草泥马100元\t\t\t\t\033[5m")
        print("\033[0;30;46m\t\t输入1是《nick写真集》1元\t\t\t\033[5m")
        print("\033[0;30;46m\t\t输入2是奥特曼玩偶50元 \t\t\t\033[5m")
        print("\033[0;30;46m\t\t输入3是钢铁侠真人套装10000元 \t\033[5m")
        print("\033[0;30;46m\t\t输入4是《产品经理强哥自传》18888元\033[5m")
        print("\033[0;30;46m\t\t输入5是《马叉虫是如何炼成的》888元\033[5m")
        print("\033[0;30;46m\t\t输入6是《YwY自传》8888888888888元\033[5m")
        print("\033[0;31;m输入q退出程序\t\t\t\t\t\033[5m")
        print(38 * '-')
        goods_chiose = input('请输入你要购买的商品')
        if goods_chiose=='q':
            loading()
            return
        elif goods_chiose not in goods_dict:
            print('请好好输入')
            continue
        else:
            a = '2'
        while True:
            goods_nums = input('请输入商品的数量')
            if not goods_nums.isdigit():
                print('请输入数字')
            break
        goods = goods_dict[goods_chiose][0]
        price = goods_dict[goods_chiose][1]*int(goods_nums)

        #生成购物车
        global user_car
        if goods not in user_car:
            user_car[goods] = [goods_nums,price]
        else:
            user_car[goods][0] += goods_nums
            user_car[goods][1] += price
        print('\033[1;32;m-'*50)
        date_time = data_time()
        print(f'您好{login_name[0]}:')
        print(f'当前日期{date_time}\n\n')
        money = 0
        for user_car_info in user_car.items():
            print(f'{user_car_info[0]}{user_car_info[1][0]}个 合计{user_car_info[1][1]}元\n')
            money += int(user_car_info[1][1])
        print(f'\t\t\t\t\t一共{money}元')
        print('-' * 50)
        print('\033[0m',end='')
        judge = 1
        while judge == 1:
            print(50 * '\033[1;32;m-')
            jump = input('\033[0m输入0结算\n'
                         '输入1继续购买\n'
                         '输入2清空购物车继续购买\n'
                         '输入3清空购物车退出\n'
                         '请输入您的选择\n'
                         '\033[0m').strip()
            if jump not in ['0','1','2','3']:
                print('请正确输入0,1,2,3中任意数字')
                continue
            if jump == '1':
                judge = 4  # 跳出功能选择
                a = '0'  # 继续购买
            elif jump == '2':
                user_car = dict()  # 清空购物车
                judge = 4  # 跳出功能选择
                a = '0'  # 继续购买
            elif jump == '3':
                user_car = dict()
                judge = 4  # 跳出功能选择
                print("-" * 50)
                print('\033[1;42;m\t欢迎下次光临\t\033[0m')
            elif jump == '0':
                if  money > balance:
                    print('\033[1;31;m余额不足\033[0m')
                else:
                    judge = 4  # 跳出功能选择
                    print("\033[1;32;m-" * 50)
                    #打印内容
                    date_time = data_time()
                    money = 0
                    print(f'您好{login_name[0]}:')
                    print(f'当前日期{date_time}\n\n')
                    for user_car_info in user_car.items():
                        print(f'{user_car_info[0]}{user_car_info[1][0]}个 合计{user_car_info[1][1]}元\n')
                        money += int(user_car_info[1][1])
                    print(f'\t\t\t\t\t一共{money}元')
                    print("-" * 50)
                    print('\033[0m')
                    balance -= money
                    fil_info_balance_amend(login_name[0],balance)
                    print('\033[1;42;m\t欢迎下次光临\t\033[0m')
                    logger_shopping(login_name[0],user_car)
                    loading()
                    return

#余额查询
def balance_enquiry():
    print('\033[1;34;46m\t\t欢迎使用余额查询功能\t\033[0m')
    name_list = fil_info_name_list()
    login_name_Ture = 0
    login_count =0
    if not name_list:
        print('\033[1;31;m没有用户注册请先注册\033[0m')
        loading()
        return False
    global login_name
    if not login_name[0]:
        print('\033[1;31;m没有用户登入请先登入\033[0m')
        loading()
        return False
    info_dict = fil_userinfo(login_name[0])
    print(f"\033[1;32;m当前账户{login_name[0]}可用余额为{info_dict['balance']}元\033[0m")
    print('\033[1;42;m5秒后返回主界面\033[0m',end='')
    loading()
    time.sleep(4)

#解冻
def freeze():
    print('\033[1;34;46m\t\t欢迎使用账号解冻功能\t\033[0m')
    name_list = fil_info_name_list()
    login_name_Ture = 0
    login_count = 0
    if not name_list:
        print('\033[1;31;m没有用户注册请先注册\033[0m')
        loading()
        return False
    while True:
        print('\033[1;34;43m\t\t请您输入解冻账号\t\t\033[0m')
        print('\033[1;31;m输入Q退出程序\t\033[0m')
        name = input('请输入:').strip()
        if name == 'Q':
            loading()
            return False
        elif len(name.replace(' ', '')) != len(name):
            print('\033[1;31;m输入账号中有宫格请重新输入\t\033[0m')
            continue
        elif not name.isalpha():
            print('\033[1;31;m输入账号不为全英文字母\t\t\033[0m')
            continue
        elif name not in name_list:
            print('\033[1;31;m输入账号不存在\t\t\033[0m')
            continue
        else:
            user_dict = fil_userinfo(name)
            user_freeze = user_dict['freeze']
            user_pwd = user_dict['pwd']
            if user_freeze == 0:
                print(f'\033[1;31;m当前账户{name}未被冻结\t\t\033[0m')
                loading()
                return
            else:
                while True:
                    print('-' * 50)
                    a = input('输入:杨大爷请帮我解冻\n请输入:')
                    if a != '杨大爷请帮我解冻':
                        print('\033[1;31;m想解冻就好好输入\033[0m')
                        continue
                    fil_info_frzzez_amend(name, 0)
                    print(f'\033[1;32;m账号{name}解冻成功\033[0m')
                    loading()
                    return

#运行模块
#功能列表
msg_dict ={
    '1':login,
    '0':register,
    '2':top_up,
    '3':balance_enquiry,
    '4':shopping,
    '5':freeze,
    'q':'quit'
}
app_name_dict ={
    '1':'login',
    '0':'register',
    '2':'top_up',
    '3':'balance_enquiry',
    '4':'shopping',
    '5':'freeze'
}
#运行程序
if __name__ == '__main__':
    logger_start('程序主界面')
    while True:
        print("\033[0;31;44m\t\t杨大爷超市欢迎您\t\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入0进入注册界面\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入1进入登入界面\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入2进入充值界面\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入3进入余额查询界面\t\t\033[5m")
        print("\033[0;30;42m\t\t输入4进入购物界面\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入5进入解冻界面\t\t\t\033[5m")
        print("\033[0;30;42m\t\t输入q退出程序 \t\t\t\t\033[5m")
        print(38 * '-')
        user_shopping_chiose = input('请输入你要选择的功能')
        if user_shopping_chiose not in msg_dict:
            print('请好好输入')
            continue
        elif user_shopping_chiose=='q':
            print('再见')
            logger_end('程序主界面')
            break
        else:
            logger_start(f'{app_name_dict[user_shopping_chiose]}')
            msg_dict[user_shopping_chiose]()
            logger_end(f'{app_name_dict[user_shopping_chiose]}')

3.自定义辅助模块

1.用于文件的读取和写入

fil_mode.py

import json
import os
def fil_add_info_dict(dict,fil='用户注册信息.txt'):
    info_dict = json.dumps(dict)
    with open(fil,'a',encoding='utf8') as fa :
        fa.write(f'{info_dict}\n')
    return True

def fil_info_name_list(fil='用户注册信息.txt'):
    name_list = list()
    with open(fil,'a+',encoding='utf-8') as fa :
        fa.seek(0)
        data = fa.read()
        if data:
            with open(fil,'r',encoding='utf-8') as fr :
                for info_dict in fr:
                    info_dict = json.loads(info_dict)
                    name_list.append(info_dict.get('name'))
    return name_list

def fil_info_balance_amend(name,balance,fil='用户注册信息.txt'):
    name_list = fil_info_name_list(fil)  #fil_info_name_list为用字典里面的所有名字生成的列表
    if name in name_list:
        with open(fil,'r',encoding='utf8') as fr,            open('1.txt','w',encoding='utf8') as fw:
            for info_dict in fr:
                info_dict = json.loads(info_dict)
                if name == info_dict['name']:
                    info_dict['balance'] = balance
                info_dict =json.dumps(info_dict)
                fw.write(f'{info_dict}\n')
                fw.flush()
        os.remove(fil)
        os.rename('1.txt',fil)

def fil_userinfo(name,fil='用户注册信息.txt'):
    with open(fil,'a+',encoding='utf8') as far:
        far.seek(0)
        for a in far:
            a = json.loads(a)
            if a['name'] == name:
                info_dict = a
                return info_dict
        return False

def fil_info_frzzez_amend(name,freeze,fil='用户注册信息.txt'):
    name_list = fil_info_name_list(fil)  #fil_info_name_list为用字典里面的所有名字生成的列表
    if name in name_list:
        with open(fil,'r',encoding='utf8') as fr,            open('1.txt','w',encoding='utf8') as fw:
            for info_dict in fr:
                info_dict = json.loads(info_dict)
                if name == info_dict['name']:
                    info_dict["freeze"] = freeze
                info_dict =json.dumps(info_dict)
                fw.write(f'{info_dict}\n')
                fw.flush()
        os.remove(fil)
        os.rename('1.txt',fil)

2.用于子程序返回主界面来个延迟动画效果

loading.py

import time
def  loading():
    txt = '返回主界面中loading'
    print(f'\033[1;42;m{txt}\033[0m',end='')
    for a in range(10):
        print(f'\033[1;42;m.\033[0m',end='')
        time.sleep(0.1)
    print('')
    return True

3.用于记录时间

data_time.py用于记录时间

import time
def data_time():
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

4.记录日志(这部分有点问题)

logger.py

import logging
def logger_login(user):
    logger_login = logging.getLogger('user_login')
    fli_show = logging.FileHandler('user_login.log')
    logger_format = logging.Formatter('登入时间:%(asctime)s  %(levelname)s-用户:%(message)s',
                     datefmt='%Y-%m-%d %X' )
    fli_show.setFormatter(logger_format)
    logger_login.addHandler(fli_show)
    logger_login.setLevel(10)
    logger_login.info(user)

def logger_exit(user):
    logger_login = logging.getLogger('user_login')
    fli_show = logging.FileHandler('user_login.log')
    logger_format = logging.Formatter('退出时间:%(asctime)s  %(levelname)s-用户:%(message)s',
                     datefmt='%Y-%m-%d %X' )
    fli_show.setFormatter(logger_format)
    logger_login.addHandler(fli_show)
    logger_login.setLevel(10)
    logger_login.info(user)

def logger_start(app):
    logger_login = logging.getLogger('start')
    fli_show = logging.FileHandler('app.log')
    logger_format = logging.Formatter('%(message)s程序启动时间:%(asctime)s',
                     datefmt='%Y-%m-%d %X' )
    fli_show.setFormatter(logger_format)
    logger_login.addHandler(fli_show)
    logger_login.setLevel(10)
    logger_login.info(app)

def logger_end(app):
    logger_login = logging.getLogger('end')
    fli_show = logging.FileHandler('app.log')
    logger_format = logging.Formatter('%(message)s程序关闭时间:%(asctime)s',
                     datefmt='%Y-%m-%d %X' )
    fli_show.setFormatter(logger_format)
    logger_login.addHandler(fli_show)
    logger_login.setLevel(10)
    logger_login.info(app)

def logger_shopping(user,car):
    logger_login = logging.getLogger(user)
    fli_show = logging.FileHandler('user_shopping.log')
    logger_format = logging.Formatter('%(asctime)s  %(levelname)s-%(name)s:%(message)s',
                     datefmt='%Y-%m-%d %X' )
    fli_show.setFormatter(logger_format)
    logger_login.addHandler(fli_show)
    logger_login.setLevel(10)
    logger_login.info(car)

原文地址:https://www.cnblogs.com/pythonywy/p/11006273.html

时间: 2024-10-20 14:43:13

前面程序整合加自定义日志,日志会记录重目前还在找问题的相关文章

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

Log4J日志配置详解 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN <

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如

Logback 整合 RabbitMQ 实现统一日志输出

原文地址:Logback 整合 RabbitMQ 实现统一日志输出 博客地址:http://www.extlight.com 一.前言 公司项目做了集群实现请求分流,由于线上或多或少会出现请求失败或系统异常,为了查看失败请求的日志信息,我们得将所有服务的日志文件都打开来进行问题的定位分析,操作起来非常麻烦.因此,我们开发组决定设计一套日志查看系统来解决上述问题. 二.实现思路 默认的,应用服务日志信息会保存在本地服务器的目录中,为了方便查看日志我们应该把多台服务器日志统一输出到一个日志文件中.

简单的php自定义错误日志

平时经常看php的错误日志,很少有机会去自己动手写日志,看了王健的<最佳日志实践>觉得写一个清晰明了,结构分明的日志还是非常有必要的. 在写日志前,我们问问自己:为什么我们有时要记录自定义的日志呢?而不用系统默认的日志记录方式呢? 我认为有两个原因: 1.团队需要一个统一格式的日志方便管理 2.大量无用错误日志占据硬盘空间,仅需记录有意义的日志. 那么,实践一下. 1.打开你的php.ini 2.打开日志记录,将 log_errors = Off 改成 log_errors = On 3.将p

Discuz!自定义积分日志

转: http://www.mutoulee.cn/113.html http://www.xuephp.com/main/detail.php?cid=23045 Discuz!自定义积分日志 在有些项目中可能会遇到积分相关操作,同时需要将自己的积分操作加入积分日志,整理了一下. 核心函数: PHP 1 updatemembercount($_G['uid'], array($credit => -dintval($_GET['num'])), true, 'WDA', 1, '积分提现');

解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]

这里使用的IntelliJ IDEA版本为[IntelliJ IDEA 14.1.4]: 一.控制台打印的程序运行时的log4j日志中包含中文乱码 在IDEA安装目录的bin目录下找到名为"idea.exe.vmoptions"的文件: 使用文本编译软件(Notepad++等)打开此文件,在文件内容从末尾追加一行设置(-Dfile.encoding=UTF-8),表示指定编码为UTF-8: 重启IDEA,再次测试,log4j日志不再乱码: 但是发现tomcat启动日志乱码了(修改IDE

自定义tornado日志格式

本文和大家分享的主要是tornado日志格式自定义相关内容,一起来看看吧,希望对大家学习python有所帮助. 第一次玩tornado.版本4.x.为了解决日志格式的问题,google了很多,没一个有效的. tornado日志格式分两块,一块是logging的格式,一块是tornado请求消息格式. tornado默认的访问日志输出是这样的: WARNING:tornado.access:404 GET / (127.0.0.1) 167.93ms 其中, WARNING:tornado.acc

lumen 自定义错误日志文件

自定义错误日志文件,改造新的方法 <?php namespace App; use Monolog\Logger; use Monolog\Handler\StreamHandler; use Monolog\Formatter\LineFormatter; class LogLib { //define static log instance. protected static $_log_instance; /** * 获取log实例 * * @return obj * @author Sp

学习练习程序:根据日期提取日志的python脚本。

#!/usr/bin/python #! *-* coding:utf-8 *-* #file:Analysis_logs.py #import os import string import re month={ '1':'Jan',         '2':'Feb',         '3':'Mar',         '4':'Apr',         '5':'May',         '6':'Jun',         '7':'Jul',         '8':'Aug'