当前位置: 首页 > wzjs >正文

网站开发后端用java叫什么做app软件大概多少钱

网站开发后端用java叫什么,做app软件大概多少钱,福建省建设工程造价站官方网站,北京网站建设团队Python Logger详细用法和说明 1. Logger简介 Logger是Python内置的logging模块中的一个重要组件,用于记录程序运行过程中的事件信息,包括错误、警告、信息以及调试信息。合理使用Logger可以极大提高程序的调试效率和可维护性。 2. Logger的基本用法 导…

Python Logger详细用法和说明

1. Logger简介

Logger是Python内置的logging模块中的一个重要组件,用于记录程序运行过程中的事件信息,包括错误、警告、信息以及调试信息。合理使用Logger可以极大提高程序的调试效率和可维护性。


2. Logger的基本用法

导入模块

import logging

创建Logger对象

# 创建Logger对象,通常使用模块名作为logger的名称
logger = logging.getLogger(__name__)
# 设置日志级别,只有级别高于等于该级别的日志才会被记录
logger.setLevel(logging.DEBUG)

Handler详解

Handler用于指定日志输出的位置,例如控制台、文件、网络等。

常用Handler:
  • StreamHandler: 输出日志到控制台(标准输出)
  • FileHandler: 输出日志到文件
使用StreamHandler(输出到控制台)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
使用FileHandler(输出到文件)
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.ERROR)

Formatter详解

Formatter用于定义日志消息的格式,例如包含时间、日志级别、日志消息等。

# 定义日志的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')# 给handler设置formatter
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)

将Handler添加到Logger

logger.addHandler(console_handler)
logger.addHandler(file_handler)

输出日志消息

logger.debug('这是一个调试信息')
logger.info('这是普通信息')
logger.warning('这是一个警告信息')
logger.error('这是一个错误信息')
logger.critical('这是一个严重错误信息')

3. Logger日志级别详细说明

Logger提供的日志级别有以下几种:

日志级别数值含义
DEBUG10详细信息,用于问题的调试与排查
INFO20普通信息,记录正常运行时的事件
WARNING30警告信息,可能导致问题的情况
ERROR40错误信息,程序运行出现的问题
CRITICAL50严重错误,通常导致程序崩溃

日志级别的顺序为:

CRITICAL > ERROR > WARNING > INFO > DEBUG

4. Logger的进阶配置

logging.config 的几种加载方式

Python提供logging.config模块进行集中化配置:

  1. fileConfig 加载INI格式配置文件:
import logging.config
logging.config.fileConfig('logging.conf')
  1. dictConfig 加载字典(推荐):
import logging.config
logging.config.dictConfig(my_config_dict)
  1. 自定义代码方式配置
    使用Python代码动态设置Logger(前文已演示)。

使用配置文件进行日志配置

创建配置文件(如logging.conf)用于Logger的配置。

logging.conf示例(包含两个handler):

[loggers]
keys=root,myLogger[handlers]
keys=consoleHandler,fileHandler[formatters]
keys=simpleFormatter[logger_root]
level=WARNING
handlers=consoleHandler[logger_myLogger]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=myLogger
propagate=0[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)[handler_fileHandler]
class=FileHandler
level=ERROR
formatter=simpleFormatter
args=('app.log', 'a')[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

loggers 字段的说明

在配置文件中,[loggers]部分定义了有哪些Logger实例。每个Logger都可以拥有独立的级别、处理器和名称。

  • root 是Python默认的顶级Logger。
  • 你也可以自定义Logger(如上例中的 myLogger),并通过 qualname 设置其名称。
  • 在代码中使用 getLogger('myLogger') 获取这个Logger。

这使得你可以为不同模块、不同用途设置不同的日志策略,实现更灵活的日志管理。

使用示例:

import logging.configlogging.config.fileConfig('logging.conf')
logger = logging.getLogger('myLogger')
logger.debug('这是自定义logger的调试日志')

使用字典配置Logger

import logging.configlogging_config = {'version': 1,'formatters': {'simpleFormatter': {'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'},},'handlers': {'consoleHandler': {'class': 'logging.StreamHandler','formatter': 'simpleFormatter','level': logging.DEBUG,},'fileHandler': {'class': 'logging.FileHandler','formatter': 'simpleFormatter','level': logging.ERROR,'filename': 'app.log',},},'loggers': {'myLogger': {'handlers': ['consoleHandler', 'fileHandler'],'level': 'DEBUG','propagate': False,},}
}logging.config.dictConfig(logging_config)
logger = logging.getLogger('myLogger')
logger.debug('输出到控制台')
logger.error('输出到控制台并记录到文件')

5. logging模块常见方法和配置

Logger对象常用方法:

  • logger.debug(msg):记录调试信息
  • logger.info(msg):记录普通信息
  • logger.warning(msg):记录警告
  • logger.error(msg):记录错误
  • logger.critical(msg):记录严重错误
  • logger.exception(msg):记录异常信息,自动附带堆栈(应在except块中使用)

常见配置项:

  • name: 日志器名称(通过 getLogger(name) 获取)
  • level: 级别过滤器
  • handlers: 所使用的输出通道
  • formatter: 日志格式控制器
  • propagate: 是否向父Logger传递日志(默认True)

6. 同时使用多个Handler的示例

实际应用中,通常需要日志同时输出到控制台和文件。

import logginglogger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.ERROR)formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)logger.addHandler(console_handler)
logger.addHandler(file_handler)logger.debug('仅输出到控制台')
logger.error('同时输出到控制台和文件')

7. Logger的最佳实践

  • 尽可能选择合适的日志级别,避免记录大量无意义的日志。
  • 在实际生产环境中推荐使用配置文件进行管理,易于维护和修改。
  • 日志文件管理中,应考虑日志文件大小、轮转机制以及长期备份。
  • 利用多个Logger区分不同模块、用途,提高日志管理的灵活性。

8. 总结

Python中的Logger模块功能强大,理解Handler、Formatter、Logger本身的结构,以及配置方式(包括loggers字段的用途)、加载方法和常见函数使用,可以有效提升项目的可维护性和可观测性。

http://www.dtcms.com/wzjs/273402.html

相关文章:

  • 嘉兴网站建设seo电商网站设计
  • 深圳营销网站建设手游推广代理平台有哪些
  • 注册网站域名用什么好处seo企业站收录
  • mvc做网站用的多不多淘宝怎么优化关键词步骤
  • 南宁营销型网站制作网络舆情
  • 大学建设网站的意义一个免费的网站
  • 给公司做网站销售怎样啦seo短视频入口
  • 网站建设及安全管理企业营销策划论文
  • 多用户商城网站建设二次开发seo综合查询
  • 2017做网站挣钱吗软文推广的好处
  • app下载安装官方免费河北seo基础知识
  • 能通过付费网站看别人空间吗武汉seo首页优化技巧
  • 家装公司网站建设方案b站黄页推广软件
  • 万网虚拟机怎么做两个网站外贸怎么建立自己的网站
  • 在百度搜不到网站上海百度seo网站优化
  • 网站建设栏目结构表百度置顶广告多少钱
  • 五合一网站做优化好用吗网站关键词排名优化工具
  • 怎么查网站有没有做底部导航传统营销方式有哪些
  • 怎么查看网站是用什么系统做的网络营销策划书范文模板
  • WordPress 固定域名seo优化排名怎么做
  • 彩票网站怎么做收银重庆黄埔seo整站优化
  • 饿了么网站怎么做的百度搜索官方网站
  • 手机网站怎么备案百度搜索网址大全
  • 免费网站建设无广告百度网页pc版登录
  • 那个网站可以找人做设计师域名免费注册0元注册
  • 58同城找工作app下载北京seo关键词优化收费
  • 如何注册一个免费域名河南seo推广
  • 做外贸需要哪些网站重庆排名seo公司
  • 网页无法访问此页面长沙seo优化首选
  • 网站自适应手机转码餐饮店如何引流与推广