java用输出等级_java – Gradle Logging输出级别

几个选项(我个人更喜欢选项2.2):

1)自定义logging.properties文件:

Java Logging API在< JRE_HOME> /lib/logging.properties上有一个默认的日志记录配置文件.您可以使用自己的配置文件设置JVM属性java.util.logging.config.file.

handlers = java.util.logging.ConsoleHandler

Run.handlers = java.util.logging.ConsoleHandler

Run.level = FINER

Run.useParentHandlers = false

java.util.logging.ConsoleHandler.level = ALL

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

您必须设置useParentHandlers = false以避免从父处理程序获取重复打印.

1.1)使用绝对路径设置上面的属性

甚至没试过;-)

1.2)在Run.java中按如下方式加载自定义文件

在Run.java中按如下方式加载它:

InputStream inputStream = Run.class.getResourceAsStream("mylogging.properties");

try {

LogManager.getLogManager().readConfiguration(inputStream);

} catch(Exception e) {

e.printStackTrace();

}

2)自定义系统属性(即:logLevel)

在build.gradle中定义systemProperty:

run {

systemProperty 'logLevel',System.getProperty('logLevel')

}

在Run.java中添加defaultLogLevel:

public static Level defaultLevel = Level.INFO;

获取logLevel属性的值:

String logLevel = System.getProperty("logLevel");

并在logger中设置定义的级别:

Logger logger = Logger.getLogger(Run.class.getName());

logger.setLevel(logLevel.isEmpty() ? defaultLevel : Level.parse(logLevel));

2.1)从父处理程序创建一个新的ConsoleHandler并关闭打印

System.out.println(Run.class.getName());

Logger logger = Logger.getLogger(Run.class.getName());

logger.setLevel(logLevel.isEmpty() ? defaultLevel : Level.parse(logLevel));

Handler consoleHandler = new ConsoleHandler();

consoleHandler.setLevel(logLevel.isEmpty() ? defaultLevel : Level.parse(logLevel));

logger.addHandler(consoleHandler);

logger.setUseParentHandlers(false);

2.2)查找父ConsoleHandler并设置定义的级别

Logger topLogger = Logger.getLogger("");

Handler consoleHandler = null;

for (Handler handler : topLogger.getHandlers()) {

if (handler instanceof ConsoleHandler) {

//found the console handler

consoleHandler = handler;

break;

}

}

if (consoleHandler == null) {

// not found,create a new one

consoleHandler = new ConsoleHandler();

topLogger.addHandler(consoleHandler);

}

//set the console handler level

consoleHandler.setLevel(logLevel.isEmpty() ? defaultLevel : Level.parse(logLevel));

这样,gradle run会产生高于默认级别(INFO)的消息.同

gradle run -DlogLevel=FINE

您可以控制显示哪些消息.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值