@Override
public void run() {
while (!shouldStop) {
int fileNum = RND.nextInt(logCount);
int logLevel = RND.nextInt(LOG_LEVELS.length);
String outputCommand = String.format("output=%s_%d.log", logFilePrefix, fileNum);
String logLevelCommand = "what='gc*=" + LOG_LEVELS[logLevel] + "'";
try {
Object out = MBS.invoke(new ObjectName("com.sun.management:type=DiagnosticCommand"),
"vmLog",
new Object[]{new String[]{outputCommand, logLevelCommand}},
new String[]{String[].class.getName()});
if (!out.toString().isEmpty()) {
System.out.format("WARNING: Diagnostic command vmLog with arguments %s,%s returned not empty"
+ " output %s\n",
outputCommand, logLevelCommand, out);
}
} catch (InstanceNotFoundException | MBeanException | ReflectionException | MalformedObjectNameException e) {
System.out.println("Got exception trying to change log level:" + e);
e.printStackTrace();
throw new Error(e);
}
Thread.yield();
}
System.out.println("Log Switcher finished");
}
TestUnifiedLoggingSwitchStress.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:openjdk-jdk10
作者:
评论列表
文章目录