java.util.logging.Logger 在测试中 class
java.util.logging.Logger in tested class
我正在尝试 运行 测试我的 class,它使用 java.util.logging.Logger
import java.util.logging.Logger;
public class TestLogging {
final Logger logger = Logger.getLogger("Test");
public void f1() {
logger.entering(getClass().getName(), "f1");
logger.info("f1");
logger.fine("f1");
logger.finer("f1");
logger.finest("f1");
logger.exiting(getClass().getName(), "f1");
}
}
所以我设置了一个测试 class 来检查记录器是否在测试 class 时产生输出
import org.junit.Before
import org.junit.Test
import java.util.logging.Level
import java.util.logging.Logger
class TestLogger {
@Before
fun setupLogger() {
Logger.getLogger("Test").level = Level.FINEST
}
@Test
fun test() {
TestLogging().f1()
}
}
但是当我 运行 它时,我只看到以下输出,就好像级别设置为默认值一样。
TestLogger > test STANDARD_ERROR
Sep 27, 2017 2:17:32 PM TestLogging f1
INFO: f1
您必须持有比方法局部范围更宽的 。如果您不这样做,您的级别设置可能会由于记录器的垃圾收集而丢失。
如果您想在控制台中看到输出,那么您还必须调整控制台处理程序的级别。
如果你想声明一些输出值,那么你需要安装一个 来寻找特定的 LogRecord
。
我正在尝试 运行 测试我的 class,它使用 java.util.logging.Logger
import java.util.logging.Logger;
public class TestLogging {
final Logger logger = Logger.getLogger("Test");
public void f1() {
logger.entering(getClass().getName(), "f1");
logger.info("f1");
logger.fine("f1");
logger.finer("f1");
logger.finest("f1");
logger.exiting(getClass().getName(), "f1");
}
}
所以我设置了一个测试 class 来检查记录器是否在测试 class 时产生输出
import org.junit.Before
import org.junit.Test
import java.util.logging.Level
import java.util.logging.Logger
class TestLogger {
@Before
fun setupLogger() {
Logger.getLogger("Test").level = Level.FINEST
}
@Test
fun test() {
TestLogging().f1()
}
}
但是当我 运行 它时,我只看到以下输出,就好像级别设置为默认值一样。
TestLogger > test STANDARD_ERROR
Sep 27, 2017 2:17:32 PM TestLogging f1
INFO: f1
您必须持有比方法局部范围更宽的
如果您想在控制台中看到输出,那么您还必须调整控制台处理程序的级别。
如果你想声明一些输出值,那么你需要安装一个 LogRecord
。