草庐IT

关于调试:让 logging.debug() 在 Google App Engine/Python 上工作

codeneng 2023-03-28 原文

Getting logging.debug() to work on Google App Engine/Python

我刚刚开始为 Google App Engine 构建 Python 应用程序。在 localhost 环境中(在 Mac 上)

我正在尝试通过 logging.debug() 将调试信息发送到 GoogleAppEngineLauncher 日志控制台,但它没有显示出来。但是,通过 logging.info()logging.error() 发送的任何内容都会显示出来。我在 logging.debug() 之前尝试过 logging.basicConfig(level=logging.DEBUG),但无济于事。

我错过了什么?


如果有人使用 Windows Google 应用程序启动器。可以在编辑 > 应用程序设置

下设置调试参数

在额外的命令行标志中,添加 --log_level=debug

  • 我曾尝试在启动设置下执行此操作。 (额外的命令行标志)我把它放进去并更新。它似乎没有保留额外的命令行标志,它总是空的。


标志是 --log_level debug.

具体来说,使用以下命令行启动您的开发服务器:

1
dev_appserver.py --log_level debug .

您可以通过运行 dev_appserver.py --help 找到此信息。以下是命令输出中的相关引用:

--log_level {debug,info,warning,critical,error}
the log level below which logging messages generated
by application code will not be displayed on the
console (default: info)

使用等号(即--log_level=debug)也可以,因为python脚本google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py依赖于argparse模块,后者处理空格和等号的方式相同,如中所述官方文档。

  • 根据stackoverflow.com/a/17350827/242848,它是 --log_level=debug (带有'='符号)。您能否澄清/仔细检查,并可能指向一些文档,我将更改接受的答案。
  • 感谢您的反馈。 --log_level=debug--log_level debug 都可以工作,因为 argparse python 模块的设计方式。我相应地编辑了我的答案。
  • 好的,这是现在公认的答案。你能把你的第一句话改得不那么混乱吗?例如。 '接受的答案' -> '以前接受的答案'
  • 我删除了以前接受的答案,因为它是错误的,所以在这个答案中完全没有必要提及它:)
  • 感谢您的反馈意见。我已删除所有提及已接受答案的内容。


在 Mac 上:

1) 单击编辑 > 应用程序设置

2) 然后将以下行复制并粘贴到"Extra Flags:"字段中

--log_level=调试

3) 点击更新

您的调试日志现在将显示在日志控制台中


设置 log_level 标志的另一种方法:

1
logging.getLogger().handlers[0].setLevel(logging.DEBUG)

有关关于调试:让 logging.debug() 在 Google App Engine/Python 上工作的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 无法让 rspec、spork 和调试器正常运行 - 2

    GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'

  3. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. ruby-on-rails - 如何调试 cucumber 测试? - 2

    我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element

  6. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  7. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  8. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  9. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  10. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

随机推荐