logging stack_info

时间: 2023-08-08 17:12:27 浏览: 63
`stack_info`是Python标准库中`logging`模块中的一个参数,用于记录堆栈信息。它是一个布尔类型的参数,如果设置为True,则在日志记录中包含完整的堆栈跟踪信息。这对于调试非常有用,因为它可以帮助你在代码中定位问题。例如,如果你在代码中捕获了一个异常,并想要在日志中记录完整的堆栈跟踪信息,你可以使用如下代码: ```python import logging try: # some code that might raise an exception except Exception as e: logging.error("An error occurred: %s", str(e), stack_info=True) ``` 当异常发生时,这将记录一个错误消息以及完整的堆栈跟踪信息。注意,`stack_info`参数只有在`logging.error()`等级或更高级别的日志记录函数中才有效。
相关问题

stack_info

`stack_info` 是 Python 3.8 中 `logging` 模块中新增的一个特性,用于在日志中记录当前线程的调用栈信息。具体来说,它记录了当前线程的栈帧信息(函数名、文件名、行号等),可以帮助开发者更方便地追踪问题。 使用 `stack_info` 的方法很简单,只需要在日志记录中添加 `%(stack_info)s` 占位符即可。例如: ```python import logging logging.basicConfig(format='%(asctime)s %(message)s [%(stack_info)s]') def foo(): logging.warning("This is a warning message from foo()") def bar(): foo() bar() ``` 运行上面的代码会输出如下日志: ``` 2021-07-27 16:42:59,842 This is a warning message from foo() [bar, test.py:10, <module>, test.py:14] ``` 其中 `[bar, test.py:10, <module>, test.py:14]` 是调用栈信息,表示当前线程的调用栈为 `bar()` -> `foo()` -> `<module>`。

import argparse import logging import re from multiprocessing import Process, Queue from pathlib import Path import numpy as np from skimage import exposure, filters from modules.config import logger from modules.volume import volume_loading_func, volume_saving_func def normalize_intensity( np_volume: np.ndarray, relative_path: Path, logger: logging.Logger ): logger.info(f"[processing start] {relative_path}") nstack = len(np_volume) stack: np.ndarray = np_volume[nstack // 2 - 16 : nstack // 2 + 16] hist_y, hist_x = exposure.histogram(stack[stack > 0]) thr = filters.threshold_otsu(stack[stack > 0]) peak_air = np.argmax(hist_y[hist_x < thr]) + hist_x[0] peak_soil = np.argmax(hist_y[hist_x > thr]) + (thr - hist_x[0]) + hist_x[0] np_volume = np_volume.astype(np.int64) for i in range(len(np_volume)): np_volume[i] = ( (np_volume[i] - peak_air).clip(0) / (peak_soil - peak_air) * 256 / 2 ) logger.info(f"[processing end] {relative_path}") return exposure.rescale_intensity( np_volume, in_range=(0, 255), out_range=(0, 255) ).astype(np.uint8) 请详细解释每一行的代码意思

这是一段 Python 代码,主要是实现了对 3D 数据进行灰度值归一化预处理的功能,下面逐行解释: ```python import argparse import logging import re from multiprocessing import Process, Queue from pathlib import Path import numpy as np from skimage import exposure, filters from modules.config import logger from modules.volume import volume_loading_func, volume_saving_func ``` 首先是导入一些 Python 模块和工具。其中 argparse、logging、re、Path、numpy、skimage 等模块都是 Python 内置模块,而 multiprocessing 和 skimage 的 exposure、filters 模块需要额外安装。另外,这段代码还从自定义模块 modules 中导入了两个函数,分别是 volume_loading_func 和 volume_saving_func。 ```python def normalize_intensity( np_volume: np.ndarray, relative_path: Path, logger: logging.Logger ): ``` 定义了一个名为 normalize_intensity 的函数,它接受三个参数:np_volume,表示一个 numpy 数组,存储了 3D 数据的原始灰度值;relative_path,表示 3D 数据的存储路径,类型为 Path;logger,表示一个 logging.Logger 对象,用于写日志。 ```python logger.info(f"[processing start] {relative_path}") ``` 使用 logger 对象写日志,输出一个带有相对路径的日志信息,表示灰度归一化开始。 ```python nstack = len(np_volume) stack: np.ndarray = np_volume[nstack // 2 - 16 : nstack // 2 + 16] ``` 获取 np_volume 数组的长度 nstack,并将 np_volume 数组中的中央一部分数据赋值给 stack 变量,这里只保留了中央的 32 张切片。 ```python hist_y, hist_x = exposure.histogram(stack[stack > 0]) thr = filters.threshold_otsu(stack[stack > 0]) peak_air = np.argmax(hist_y[hist_x < thr]) peak_soil = np.argmax(hist_y[hist_x > thr]) ``` 利用 skimage 的 exposure 模块,对 stack 中大于 0 的像素值进行直方图统计,并使用 filters 模块的 threshold_otsu 函数获取阈值 thr。然后,寻找 hist_y 中小于 thr 的最大值所在的下标 peak_air,和 hist_y 中大于 thr 的最大值所在的下标 peak_soil。 ```python np_volume = np_volume.astype(np.int64) for i in range(len(np_volume)): np_volume[i] = ((np_volume[i] - peak_air).clip(0) / (peak_soil - peak_air) * 256 / 2) ``` 将 np_volume 数组转化为 int64 类型,并对其中的每一个像素值进行灰度归一化处理。首先将每个像素值减去 peak_air,然后将结果限制在 [0, max_soil - peak_air] 范围内,最后将结果缩放到 [0, 128] 范围内。 ```python logger.info(f"[processing end] {relative_path}") ``` 使用 logger 对象写日志,输出一个带有相对路径的日志信息,表示灰度归一化处理结束。 ```python return exposure.rescale_intensity( np_volume, in_range=(0, 255), out_range=(0, 255) ).astype(np.uint8) ``` 将归一化的 numpy 数组 np_volume 传入 skimage 的 exposure 模块的 rescale_intensity 函数,将灰度值缩放到 [0, 255] 范围内,并将结果转化为 uint8 数据类型,最终返回归一化处理后的 3D 数据。

相关推荐

0 info it worked if it ends with ok 1 verbose cli [ 1 verbose cli 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'dev' 1 verbose cli ] 2 info using npm@6.14.16 3 info using node@v12.22.12 4 verbose run-script [ 'predev', 'dev', 'postdev' ] 5 info lifecycle vue-element-admin@4.4.0~predev: vue-element-admin@4.4.0 6 info lifecycle vue-element-admin@4.4.0~dev: vue-element-admin@4.4.0 7 verbose lifecycle vue-element-admin@4.4.0~dev: unsafe-perm in lifecycle true 8 verbose lifecycle vue-element-admin@4.4.0~dev: PATH: C:\Users\zhongke_imzzx\AppData\Roaming\nvm\v12.22.12\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\zhongke_imzzx\Desktop\新建文件夹\lianxi_ceshi\PJC_jiaqiang\PJC_jiaqiang\node_modules\.bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\Users\zhongke_imzzx\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\allDownload\tortoiseGit\TortoiseGit_dir\bin;C:\Users\zhongke_imzzx\AppData\Local\Microsoft\WindowsApps;C:\Users\zhongke_imzzx\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\zhongke_imzzx\AppData\Roaming\nvm;C:\Program Files\nodejs; 9 verbose lifecycle vue-element-admin@4.4.0~dev: CWD: C:\Users\zhongke_imzzx\Desktop\新建文件夹\lianxi_ceshi\PJC_jiaqiang\PJC_jiaqiang 10 silly lifecycle vue-element-admin@4.4.0~dev: Args: [ '/d /s /c', 'vue-cli-service serve' ] 11 silly lifecycle vue-element-admin@4.4.0~dev: Returned: code: 1 signal: null 12 info lifecycle vue-element-admin@4.4.0~dev: Failed to exec dev script 13 verbose stack Error: vue-element-admin@4.4.0 dev: vue-cli-service serve 13 verbose stack Exit status 1 13 verbose stack at EventEmitter.<anonymous> (C:\Users\zhongke_imzzx\AppData\Roaming\nvm\v12.22.12\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16) 13 verbose stack at EventEmitter.emit (events.js:314:20) 13 verbose stack at ChildProcess.<anonymous> (C:\Users\zhongke_imzzx\AppData\Roaming\nvm\v12.22.12\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:314:20) 13 verbose stack at maybeClose (internal/child_process.js:1022:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5) 14 verbose pkgid vue-element-admin@4.4.0 15 verbose cwd C:\Users\zhongke_imzzx\Desktop\新建文件夹\lianxi_ceshi\PJC_jiaqiang\PJC_jiaqiang 16 verbose Windows_NT 10.0.22621 17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev" 18 verbose node v12.22.12 19 verbose npm v6.14.16 20 error code ELIFECYCLE 21 error errno 1 22 error vue-element-admin@4.4.0 dev: vue-cli-service serve 22 error Exit status 1 23 error Failed at the vue-element-admin@4.4.0 dev script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]

0 info it worked if it ends with ok 1 verbose cli [ 1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'serve' 1 verbose cli ] 2 info using npm@6.10.2 3 info using node@v12.8.1 4 verbose run-script [ 'preserve', 'serve', 'postserve' ] 5 info lifecycle fasp-gp@1.0.0~preserve: fasp-gp@1.0.0 6 info lifecycle fasp-gp@1.0.0~serve: fasp-gp@1.0.0 7 verbose lifecycle fasp-gp@1.0.0~serve: unsafe-perm in lifecycle true 8 verbose lifecycle fasp-gp@1.0.0~serve: PATH: C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\apple\test\fasp-gp-dev\node_modules\.bin;C:\Program Files\Parallels\Parallels Tools\Applications;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\nodejs\;C:\Users\apple\AppData\Local\Microsoft\WindowsApps;C:\Users\apple\AppData\Roaming\npm;C:\Users\apple\AppData\Local\Programs\Microsoft VS Code\bin 9 verbose lifecycle fasp-gp@1.0.0~serve: CWD: C:\Users\apple\test\fasp-gp-dev 10 silly lifecycle fasp-gp@1.0.0~serve: Args: [ '/d /s /c', 'vue-cli-service serve' ] 11 silly lifecycle fasp-gp@1.0.0~serve: Returned: code: 134 signal: null 12 info lifecycle fasp-gp@1.0.0~serve: Failed to exec serve script 13 verbose stack Error: fasp-gp@1.0.0 serve: vue-cli-service serve 13 verbose stack Exit status 134 13 verbose stack at EventEmitter.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:326:16) 13 verbose stack at EventEmitter.emit (events.js:203:13) 13 verbose stack at ChildProcess.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:203:13) 13 verbose stack at maybeClose (internal/child_process.js:1021:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5) 14 verbose pkgid fasp-gp@1.0.0 15 verbose cwd C:\Users\apple\test\fasp-gp-dev 16 verbose Windows_NT 10.0.19045 17 verbose argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "serve" 18 verbose node v12.8.1 19 verbose npm v6.10.2 20 error code ELIFECYCLE 21 error errno 134 22 error fasp-gp@1.0.0 serve: vue-cli-service serve 22 error Exit status 134 23 error Failed at the fasp-gp@1.0.0 serve script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 134, true ]

D:\004 newCoinInfo>mvn clean package [INFO] Scanning for projects... [INFO] [INFO] ------------------------< com.example:test_reg >------------------------ [INFO] Building test_reg 0.0.1-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [WARNING] The POM for com.alibaba:druid:jar:1.1.10 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ test_reg --- [INFO] Deleting D:\004 newCoinInfo\target [INFO] [INFO] --- resources:3.2.0:resources (default-resources) @ test_reg --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] Copying 1 resource [INFO] [INFO] --- compiler:3.10.1:compile (default-compile) @ test_reg --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 7 source files to D:\004 newCoinInfo\target\classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.801 s [INFO] Finished at: 2023-07-19T18:15:08+08:00 [INFO] ------------------------------------------------------------------------ [WARNING] [WARNING] Plugin validation issues were detected in 2 plugin(s) [WARNING] [WARNING] * org.apache.maven.plugins:maven-resources-plugin:3.2.0 [WARNING] * org.apache.maven.plugins:maven-compiler-plugin:3.10.1 [WARNING] [WARNING] For more or less details, use 'maven.plugin.validation' property with one of the values (case insensitive): [BRIEF, DEFAULT, VERBOSE] [WARNING] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project test_reg: Compilation failure [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [ERROR] [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

最新推荐

recommend-type

QT5开发及实例配套源代码.zip

QT5开发及实例配套[源代码],Qt是诺基亚公司的C++可视化开发平台,本书以Qt 5作为平台,每个章节在简单介绍开发环境的基础上,用一个小实例,介绍Qt 5应用程序开发各个方面,然后系统介绍Qt 5应用程序的开发技术,一般均通过实例介绍和讲解内容。最后通过三个大实例,系统介绍Qt 5综合应用开发。光盘中包含本书教学课件和书中所有实例源代码及其相关文件。通过学习本书,结合实例上机练习,一般能够在比较短的时间内掌握Qt 5应用技术。本书既可作为Qt 5的学习和参考用书,也可作为大学教材或Qt 5培训用书。
recommend-type

grpcio-1.46.3-cp37-cp37m-musllinux_1_1_i686.whl

Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

大学生毕业答辨ppt免费模板【不要积分】下载可编辑可用(138).zip

大学生毕业答辨ppt免费模板【不要积分】下载可编辑可用(138).zip
recommend-type

Eclipse的C/C++自动补全插件org.eclipse.cdt.ui-7.3.100.202111091601

Eclipse的C/C++自动补全插件,制作参考:https://blog.csdn.net/kingfox/article/details/104121203?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-104121203-blog-117118786.235%5Ev43%5Epc_blog_bottom_relevance_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-104121203-blog-117118786.235%5Ev43%5Epc_blog_bottom_relevance_base1&utm_relevant_index=2
recommend-type

大学生毕业答辨ppt免费模板【不要积分】下载可编辑可用(137).zip

大学生毕业答辨ppt免费模板【不要积分】下载可编辑可用(137).zip
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。