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

白领兼职做网站贵阳网站设计哪家好

白领兼职做网站,贵阳网站设计哪家好,在线注册公司营业执照,小程序制作公司排名Loguru是一个python的日志库#xff0c;比logging更简单#xff0c;好用#xff0c;功能丰富。 GitHub - Delgan/loguru: Python logging made (stupidly) simple 安装 pip install loguru 特征 开箱即用#xff0c;补样板没有处理程序#xff0c;没有清理程序#xff…Loguru是一个python的日志库比logging更简单好用功能丰富。 GitHub - Delgan/loguru: Python logging made (stupidly) simple 安装 pip install loguru 特征 开箱即用补样板没有处理程序没有清理程序没有过滤器一个函数可以统治所有这些通过旋转/保留/压缩更轻松地记录文件使用大字符串样式的现代字符串格式在线程或主线程中捕获异常漂亮的颜色记录异步、线程安全、多进程安全完整描述性异常根据需要形成日志记录昂贵费用的评估可定制的级别更好的日期时间处理适用于脚本和库与标准日志记录完全兼容通过环境变量进行个性化默认设置方便的解析器观赏的通知程序比内置日志记录快 10 倍 参观游乐场 开箱即用补样板 Loguru 的主要概念只有一个 。logger 为了方便入门它是预先配置的并且从一stderr开始就输出但这是完全可配置的。 from loguru import loggerlogger.debug(Thats it, beautiful and simple logging!) 这只是一个将日志消息分派到配置的处理程序的接口。很简单对吧logger 没有处理程序没有清理程序没有过滤器一个函数可以统治所有这些 如何添加处理程序如何设置日志格式如何过滤消息如何设置水平 答案之一功能。add() logger.add(sys.stderr, format{time} {level} {message}, filtermy_module, levelINFO) 此函数评估注册负责管理与记录字典上下文相关的日志消息的接收器。接收器可以采用多种形式简单函数、字符串路径、类文件对象、协程函数或内置处理程序。 请注意您还可以使用添加时返回的标识符来添加先前添加的处理程序。如果您想替换默认处理程序这特别有用只需调用即可重新开始。remove()stderrlogger.remove() 通过旋转/保留/压缩更轻松地记录文件 如果最多记录的消息发送到文件只需使用字符串路径作为接收器。为了方便起见它也可以自动解析 logger.add(file_{time}.log) 如果您需要旋转记录器如果您想删除较旧的日志或者如果您希望在关闭时压缩文件它也可以轻松配置。 logger.add(file_1.log, rotation500 MB) # Automatically rotate too big file logger.add(file_2.log, rotation12:00) # New file is created each day at noon logger.add(file_3.log, rotation1 week) # Once the file is too old, its rotatedlogger.add(file_X.log, retention10 days) # Cleanup after some timelogger.add(file_Y.log, compressionzip) # Save some loved space 使用大字符串样式的现代字符串格式 Loguru 更喜欢更优雅和更强大的{}格式%日志记录功能实际上实际上str.format()。 logger.info(If youre using Python {}, prefer {feature} of course!, 3.6, featuref-strings) 在线程或主线程中捕获异常 您是否曾遇到过您的程序意外崩溃而在日志文件中看不到任何内容您是否注意到线程中发生的异常没有被记录这可以使用装饰器/上下文管理器来解决它确保任何错误都传播到正确的地方。catch()logger logger.catch def my_function(x, y, z):# An error? Its caught anyway!return 1 / (x y z) 漂亮的颜色记录 如果您的兼容Loguru 会自动为您的日志添加颜色。您可以通过使用接收器格式的标记来定义您喜欢的样式。 logger.add(sys.stdout, colorizeTrue, formatgreen{time}/green level{message}/level) 异步、线程安全、多进程安全 默认情况下添加到的所有接收器都是线程安全的。它们不是多进程安全的但您可以通过消息来确保日志的限制。如果您想要异步日志记录也可以使用相同的参数。loggerenqueue logger.add(somefile.log, enqueueTrue) 首先接收器的协程函数也受支持并且应该使用等待。complete() 完整描述性异常 记录代码中的异常对于跟踪错误非常重要但如果您不知道失败的原因那么它就没用处。Loguru 通过允许显示整个堆栈跟踪包括标记值来帮助您识别问题感谢您 。better_exceptions 代码 logger.add(out.log, backtraceTrue, diagnoseTrue) # Caution, may leak sensitive data in proddef func(a, b):return a / bdef nested(c):try:func(5, c)except ZeroDivisionError:logger.exception(What?!)nested(0) 会导致 2018-07-17 01:38:43.975 |错误| __main__: 演讲:10 - 什么 回溯最近一次调用最后一次文件“test.py”第12行位于 module 中演讲(0)└ 函数调用在 0x7f5c755322f0 文件“test.py”第8行曼哈顿函数5c│ └ 0└ 0x7f5c79fc2e18 处的函数 func文件“test.py”第4行在 func 中返回a/b│ └ 0└ 5ZeroDivisionError除以零请注意由于帧数据不可用此功能不适用于默认的Python REPL。 根据需要形成日志记录 想要对您的日志进行序列化以便解析或传送它们吗使用该serialize参数每条日志消息在发送到配置的接收器之前都将转换为 JSON 字符串。 logger.add(custom_sink_function, serializeTrue) bind()您可以通过修改附加的记录属性来将记录器消息放在上下文中。 logger.add(file.log, format{extra[ip]} {extra[user]} {message}) context_logger logger.bind(ip192.168.0.1, usersomeone) context_logger.info(Contextualize your logger easily) context_logger.bind(usersomeone_else).info(Inline binding of extra attribute) context_logger.info(Use kwargs to add context during formatting: {user}, useranybody) 可以使用以下命令临时修改上下文本地状态contextualize() with logger.contextualize(tasktask_id):do_something()logger.info(End of task) bind()您还可以通过组合和来对日志进行更细粒度的控制filter logger.add(special.log, filterlambda record: special in record[extra]) logger.debug(This message is not logged to the file) logger.bind(specialTrue).info(This message, though, is logged to the file!) 最后该方法允许将动态值附加到每条新消息的记录字典中patch() logger.add(sys.stderr, format{extra[utc]} {message}) logger logger.patch(lambda record: record[extra].update(utcdatetime.utcnow())) 昂贵费用的评估 有时您想在生产过程中记录信息而不是损失您可以使用详细的方法来实现这一点。opt() logger.opt(lazyTrue).debug(If sink level DEBUG: {x}, xlambda: expensive_function(2**64))# By the way, opt() serves many usages logger.opt(exceptionTrue).info(Error stacktrace added to the log message (tuple accepted too)) logger.opt(colorsTrue).info(Per message bluecolors/blue) logger.opt(recordTrue).info(Display values from the record (eg. {record[thread]})) logger.opt(rawTrue).info(Bypass sink formatting\n) logger.opt(depth1).info(Use parent stack context (useful within wrapped functions)) logger.opt(captureFalse).info(Keyword arguments not added to {dest} dict, destextra) 可定制的级别 Loguru 附带了添加和的所有标准日志记录级别。您还需要更多吗然后只需使用该函数创建它即可。trace()success()level() new_level logger.level(SNAKY, no38, coloryellow, icon)logger.log(SNAKY, Here we go!) 更好的日期时间处理 标准日志记录因datefmt或msecs、%(asctime)s和%(created)s、没有时区信息的简单日期时间、不解读的格式等参数而构建聚合。Loguru修复了它 logger.add(file.log, format{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}) 适用于脚本和库 在脚本中使用记录器很简单您可以从一开始就使用它。要从库内部使用 Loguru请记住永远不要调用相反的使用以便日志记录函数设为无操作。如果开发人员希望查看您的库房日志他们可以再次查看。configure()add()disable()enable() # For scripts config {handlers: [{sink: sys.stdout, format: {time} - {message}},{sink: file.log, serialize: True},],extra: {user: someone} } logger.configure(**config)# For libraries, should be your librarys __name__ logger.disable(my_library) logger.info(No matter added sinks, this message is not displayed)# In your application, enable the logger in the library logger.enable(my_library) logger.info(This message however is propagated to the sinks) 为了更加方便您还可以使用该库直接从配置文件进行设置。loguru-configlogger 与标准日志记录完全兼容 希望使用内置日志记录Handler作为 Loguru 接收器 handler logging.handlers.SysLogHandler(address(localhost, 514)) logger.add(handler) 需要将Loguru消息传播到标准日志记录吗 class PropagateHandler(logging.Handler):def emit(self, record):logging.getLogger(record.name).handle(record)logger.add(PropagateHandler(), format{message}) 想要拦截发送至Loguru接收器的标准日志消息吗 class InterceptHandler(logging.Handler):def emit(self, record):# Get corresponding Loguru level if it exists.try:level logger.level(record.levelname).nameexcept ValueError:level record.levelno# Find caller from where originated the logged message.frame, depth sys._getframe(6), 6while frame and frame.f_code.co_filename logging.__file__:frame frame.f_backdepth 1logger.opt(depthdepth, exceptionrecord.exc_info).log(level, record.getMessage())logging.basicConfig(handlers[InterceptHandler()], level0, forceTrue) 通过环境变量进行个性化默认设置 不喜欢默认的记录器格式想要其他DEBUG颜色吗没问题 # Linux / OSX export LOGURU_FORMAT{time} | lvl{message}/lvl# Windows setx LOGURU_DEBUG_COLOR green 方便的解析器 从生成的日志中提取特定信息通常很有用这就是为什么 Loguru 提供了一种有助于处理日志和正则表达式的方法。parse() pattern r(?Ptime.*) - (?Plevel[0-9]) - (?Pmessage.*) # Regex with named groups caster_dict dict(timedateutil.parser.parse, levelint) # Transform matching groupsfor groups in logger.parse(file.log, pattern, castcaster_dict):print(Parsed:, groups)# {level: 30, message: Log example, time: datetime(2018, 12, 09, 11, 23, 55)} 观赏的通知程序 Loguru 可以轻松地与强大的库必须单独安装结合使用方便在程序意外失败时接收电子邮件或发送许多其他类型的通知。notifiers import notifiersparams {username: yougmail.com,password: abc123,to: destgmail.com }# Send a single notification notifier notifiers.get_notifier(gmail) notifier.notify(messageThe application is running!, **params)# Be alerted on each error message from notifiers.logging import NotificationHandlerhandler NotificationHandler(gmail, defaultsparams) logger.add(handler, levelERROR) Python日志库Loguru教程最人性化的Python日志模块 - 简书
http://www.w-s-a.com/news/996345/

相关文章:

  • 热水器网站建设 中企动力企业网站开发需要多钱
  • 北京市建设工程信息网交易网站静态网页模板免费下载网站
  • 福田欧曼服务站网站前台设计
  • 网站做系统叫什么软件吗注册域名需要实名认证吗
  • jsp网站开发教学视频ui设计风格
  • 注册网站建设开发怎么自己做导航网站
  • 设计做网站品牌咖啡主题网页界面设计
  • 个人网站制作总体设计宿迁房价2023年最新房价
  • 服装网站建设进度及实施过程马鞍山网站设计制作
  • 郑州网站优化顾问济宁网站制作
  • 网站开发简单吗网站引导页分为三个板块设计风格
  • 湖南做网站 在线磐石网络百度一下百度搜索
  • 现在建网站多少钱推广营销费
  • 联想企业网站建设的思路西安网站建设阳建
  • 网站内容 内链网站建设电话销售工作总结
  • 系统网站开发知名的摄影网站有哪些
  • 网站拍照的幕布扬中网站建设价位
  • 网站ie兼容性差西安小程序开发的公司
  • 上海网站建设培训app网站开发成本
  • 个人网站icp外贸网站开发 河南
  • 遵义建设网站无锡市规划建设局网站
  • 海外留学网站建设方案门户网站的发布特点
  • 网站建设不赚钱net112企业建站系统
  • 网站建设团队管理模板贵州省住房和城乡建设部网站
  • 曲沃网站建设网上学编程的有哪些比较好的网站
  • 厦门网站建设慕枫学做网站需要多久
  • 爱奇艺做任务领vip网站设计广告图片
  • 中科汇联网站建设手册上海公司名称注册查询网
  • 网站建设电子商务课总结和体会关于做网站书籍
  • 仪征网站建设公司哪家好简单网页制作素材图片