草庐IT

severity_logger

全部标签

java - Logger.getLogger(className) 和 LogFactory.getLog(className) 之间的区别?

我知道这是包的区别1)org.apache.log4j.Loggerlogger=Logger.getLogger(clazz);2)org.apache.commons.logging.Loglog=LogFactory.getLog(clazz);第一个通过log4j使用记录器,第二个使用commons.logging。我们有一个巨大的项目,在某些类中,记录器是使用log4j配置的,在某些情况下,它是commons.logging。虽然我确实找到了一个log4j属性文件。commons.logging是否有类似的属性文件?我在哪里配置commons-logging?我看不到comm

Python 日志记录 : propagate messages of level below current logger level

我想将特定记录器名称、特定级别或更高级别(比如INFO及以上)的消息记录到特定的日志处理程序,比如文件处理程序,同时仍然获取所有日志消息到控制台。Python是2.7版。到目前为止我尝试的是创建两个记录器:根记录器命名记录器对于根记录器,我附加了一个logging.StreamHandler,并将日志级别设置为logging.DEBUG。然后我将一个处理程序附加到指定的记录器,并将该记录器的级别设置为logging.INFO。当我现在调用使用命名记录器的模块时,我不再将DEBUG日志传播到根记录器。注意:extraLogger在这里有一个StreamHandler来演示这个问题。在我的

log4j:WARN No appenders could be found for logger

log4j:WARNNoappenderscouldbefoundforlogger问题解决上面是我们运行时出现的警告信息,它并不是一个错误信息。因为log4j无法输出日志,log4j是一个日志输入软件包。解决方法(简单粗暴):在src下面新建file名为log4j.properties内容如下:#Configureloggingfortesting:optionallywithlogfilelog4j.rootLogger=WARN,stdout#log4j.rootLogger=WARN,stdout,logfilelog4j.appender.stdout=org.apache.log4

python - 我将什么参数传递给 celery 的 get_task_logger() 函数?

celery3.xdocsonlogging建议像这样设置任务记录器:fromcelery.utils.logimportget_task_loggerlogger=get_task_logger(__name__)当我这样做时,CELERYD_TASK_LOG_FORMAT被忽略,日志语句使用CELERYD_LOG_FORMAT代替,我无法使用%(task_name)s和%(task_id)s。我的任务在我的应用myapp的模块tasks中。因此,__name__是myapp.tasks。我认为问题出在celery/utils/log.py中的这些行:defget_task_logg

Python 日志记录 : Set handlers for all loggers of used modules

我有我的主脚本,它使用argparse解释cli命令,然后通过调用另一个模块(由我自己制作)中的相应内容来启动应用程序。我现在的问题是如何从该模块将处理程序附加到记录器。使用检索记录器logger=logging.getLogger(__name__)因此我在主脚本中添加了以下内容:consoleHandler=logging.StreamHandler()logger=logging.getLogger('MyModule')logger.addHandler(consoleHandler)但是“MyModule”的日志输出为0。日志级别正确,例如应该有输出。在MyModule中,我

python - Django/乌鸦/Sentry : different loggers for different DSNs

如何配置Djangologging以支持不同loggers的不同DSN?像这样:settings.pyLOGGING={..'handlers':{'sentry1':{'level':'ERROR','class':'raven.contrib.django.handlers.SentryHandler','dsn':'',},'sentry2':{'level':'ERROR','class':'raven.contrib.django.handlers.SentryHandler','dsn':'',},},'loggers':{'sentry1':{'handlers':['c

python - 我可以在 Celery 任务中使用通用的 logging.Logger() 吗?

医生说Aspecialloggerisavailablenamed“celery.task”,youcaninheritfromthisloggertoautomaticallygetthetasknameanduniqueidaspartofthelogs.这还不够。有更详细的信息吗?具体来说,它默认定义了哪些处理程序和格式字符串?我为什么要继承它?我可以改用通用的logging.Logger()吗?从celery任务(不是Django)记录到文件的最佳实践是什么?等谢谢。 最佳答案 CanIuseagenericlogging.

python - celery.utils.log.ProcessAwareLoggerobject 在 logging.Logger.manager.loggerDict 中做什么

我正在通过以下方式检查logging.Logger.manager.loggerDict:importlogginglogging.Logger.manager.loggerDict字典如下:{'nose.case':,'apps.friends':,'oauthlib.oauth2.rfc6749.grant_types.client_credentials':,'apps.adapter.views':,'apps.accounts.views':,}TherearemorebutItruncatedit我的问题是:celery为何会涉及其他各种非celery应用程序的日志记录?是

Python 多处理日志记录 - 为什么使用 multiprocessing.get_logger

一段时间以来,我一直在为多进程日志而苦苦挣扎,原因有很多。我的一个原因是,为什么要另一个get_logger。我当然见过thisquestion并且multiprocessing.get_logger返回的记录器似乎做了一些“进程共享锁”魔法来使日志记录处理顺畅。所以,今天我查看了Python2.7的多处理代码(/multiprocessing/util.py),发现这个记录器只是一个普通的logging.Logger,几乎没有任何魔法。这是Python文档中的描述,就在get_logger函数:Somesupportforloggingisavailable.Note,however

python - 在 Python 中使用 root logger 还是 named logger 更好

我正在尝试找出跨多个模块使用python日志记录的最佳实践。我在这里看到:http://docs.python.org/2/howto/logging#logging-from-multiple-modules关于如何使用根记录器跨多个模块进行记录。正如链接所指出的那样,您无法分辨您的消息在您的应用程序中的位置,因为它们都显示名称“root”。在我看来有两种选择(假设我的模块不在包结构中,而只是同一文件夹中的一堆模块):1)像示例中一样使用根记录器,但更改日志格式以包含文件名:#myapp.pyimportloggingimportmylibdefmain():logging.basi