Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Eclipse、PyCharm和其他地方用Python记录源文件名和行号?_Python_Eclipse_Logging_Hyperlink_Pycharm - Fatal编程技术网

如何在Eclipse、PyCharm和其他地方用Python记录源文件名和行号?

如何在Eclipse、PyCharm和其他地方用Python记录源文件名和行号?,python,eclipse,logging,hyperlink,pycharm,Python,Eclipse,Logging,Hyperlink,Pycharm,当使用Eclipse或Pycharm这样的IDE时,记录文件名和行号的最佳方法是什么?具体来说,将log语句链接到源代码是非常有用的,这是Java非常常见的设置 import logging, sys, os logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format='%(message)s | \'%(name)s:%(lineno)s\'') log = logging.getLogger(os.path.basen

当使用Eclipse或Pycharm这样的IDE时,记录文件名和行号的最佳方法是什么?具体来说,将log语句链接到源代码是非常有用的,这是Java非常常见的设置

import logging, sys, os
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format='%(message)s | \'%(name)s:%(lineno)s\'')
log = logging.getLogger(os.path.basename(__file__))


log.debug("hello logging linked to source")

请注意,还有一个类似的更一般的问题没有涉及使用PyDev登录PyCharm和Eclipse,特别是没有提到能够将日志输出链接到源代码。前面的一个问题确实包含了这样的信息,但措辞过于具体,两年内浏览量为155次,十年内浏览量为45000次,但高流量限制了额外的信息。还有一项调查(JetBrains承认)表明,35%的Python开发人员(只有2%的Eclipse-pydev)使用PyCharm,但其中没有任何上下文。您在这里的帖子没有特定于IDE/插件的内容或问题。也许如果你从dupe的基本格式开始提问,概述了一个具体的问题(我猜链接在日志中是不可点击的?),然后给出一个解释它如何工作和限制的答案,这可能是有用的。但是一个普通的问题和一个将你发送到其他地方以获取任何有用信息的答案是没有帮助的(接近)。一个比开始一个句子更具体的问题,就像我在这个问题中所做的那样,用词“链接……特别有用”,因此很难编辑以提供更具体的信息。问题标题本身还指定查询针对编写Python的Eclipse和Pycharm用户。这就是背景,在对问题的描述中重复。对于第一条评论中链接的民意调查中提到的65%的python开发人员来说,这些信息是无用的。尽管如此,我还是应该给出一些关于一般答案的提示。注意,这里给出的答案是完整的、自包含的、简单的、简洁的,提供了非常有用的信息,无需通过附加链接进一步探究此解决方案的历史。另一个更简单的选项是使用前缀将其添加到dupe中,如“如果您想在pydev中链接到源代码/您可以使用的任何东西…”这对我来说不起作用。
%(name)s
是模块名,而不是文件名它在Eclipse中使用上述代码的自包含文件的简单情况下工作。对于所有用例都不提供担保,但它确实回答了“如何记录源文件名…”。。。“在源代码中留下一个指向log语句的链接,在IDE控制台中输出。还有其他答案可以这样做吗?在“更长的讨论和历史”下还有其他版本,为什么有人留下评论和否决票会立即让人难以理解。这也表明缺少字符。Stackoverflow说,这条评论有更多的含义。”我还剩下20个字符。如果你到这里,它会给出一个传递模块名称的示例。上面的代码传递
\uuuuu文件\uuuuuuu
你需要澄清你在做什么,因为它无法实现上面的代码。谢谢你的回复。在评论之后,我花了一些时间让它工作,而对我有效的是str格式ing
格式化程序('%(asctime)s%(levelname)s文件“%(pathname)s”,行%(lineno)s:\t%(message)s')
。问题是,
%(pathname)s
很长。有时有效的是
格式化程序('%(asctime)s%(levelname)s[%(filename)s):%(lineno)s]:\t%(message)s'))
-使用此选项,运行的文件有时会超链接,但项目中的其他文件不会超链接。现在我阅读了您的最后一条评论,我意识到您正在将文件名传递给记录器,而不是模块名。为什么不使用
%(文件名)s
而不是更改名称?