我正在使用一个简单的基于单元测试的测试运行程序来测试我的Django应用程序。
我的应用程序本身配置为在settings.py中使用基本记录器,方法是:
logging.basicConfig(level=logging.DEBUG)
在我的应用程序代码中使用:
logger = logging.getLogger(__name__)
logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG))
但是,在运行单元测试时,我想禁用日志记录,以免混乱我的测试结果输出。有没有一种简单的方法可以以全局方式关闭日志记录,以便在运行测试时,特定于应用程序的记录器不会将内容写到控制台上?
logging.disable(logging.CRITICAL)
将禁用所有级别不低于或等于的日志记录调用CRITICAL
。可以通过以下方式重新启用日志记录
logging.disable(logging.NOTSET)
我在应用程序中使用Log4JV2.0Beta3进行日志记录,并且在运行单元测试时生成日志消息。我检查了API以确定将日志级别设置为关键级别的方法,但我找不到任何方法来更改日志程序配置。 事实上,我是在log4j2网站上读到的:
Django1.7引入了数据库迁移。 我知道忽略迁移可能是一个不好的做法,因为这部分代码将不会被测试。但事实并非如此:我在CI测试服务器(jenkins)中运行完整的迁移。我只想跳过本地测试中的迁移,因为速度很重要。 一些背景: 在Django1.6之前,在使用South时,我一直使用SOUTH_TESTS_MIGRATE设置: 可以使用--keepDB选项在测试运行之间保留测试数据库。这样做的好
问题内容: Django 1.7引入了数据库迁移。 在Django 1.7中运行单元测试时,它会强制进行迁移,这需要很长时间。因此,我想跳过django迁移,并以最终状态创建数据库。 我知道忽略迁移可能是一个坏习惯,因为该部分代码将不会进行测试。事实并非如此:我正在CI测试服务器(jenkins)中运行完整迁移。我只想在速度很重要的本地测试中跳过迁移。 一些背景: 直到Django 1.6之前,在
问题内容: 我有一些使用该软件包的工具化代码。现在该关闭日志记录了,我无法确定如何关闭标准记录器。 我错过了什么吗?我应该在进行日志调用之前检查标志,还是在生产中将其注释掉? 问题答案: 要完全禁用日志,最好调用Joril并将输出设置为无操作(例如) 但即使在此之后,操作仍将闲置约500-600 ns / op 1 这仍然可切断短路(左右 为100 ns / OP )通过使用自定义的实现,并实现所
问题内容: 我只是想在我的项目中禁用Restlet的日志到stdout / stderr,并通过org.restlet.ext.slf4j提供的SLF4J门面转发所有Restlet日志。是否有捷径可寻? 问题答案: 首先,您必须配置SLF4J来拦截Restlet对java.util.logging API的所有调用,并将它们映射到SLF4J Facade的API上的调用。您只需将jul-to- s
我正在使用logback。设置日志环境的xml文件。这里我有两个附加器,一个用于控制台,另一个用于文件。控制台appender将始终打印值,但需要时需要打开文件appender。 以下是我的配置,其中两个追加器STDOUT和文件以及两者都被添加根。我想要控制文件追加器日志,并且当我将级别值从OFF更改为其他值时,只有它应该工作。目前,如果更改级别 OFF,则停止两个追加器,并且无法在控制台上看到任