我已经在JBoss-7 standalone.xml中添加了自定义记录器,并且我提到了日志文件名,例如/home/sample/sample.log,并且日志信息在该位置正确打印但我的要求是“需要动态更改日志名称”。我可以通过JBoss log cli命令更改日志名称。 “是否可以通过Java代码更改日志文件名?” 。
答案 0 :(得分:1)
您可以使用ModelControllerClient
并从CLI更改所有内容。
例如:
ModelNode op = new ModelNode();
op.get(ClientConstants.OP).set("change-file");
//change MYHANDLER
op.get(ClientConstants.OP_ADDR).set("/subsystem=logging/periodic-rotating-file-handler=MYHANDLER");
//set new file name as new_file_name.log
ModelNode file = new ModelNode();
file.get("relative-to").set("jboss.server.log.dir");
file.get("path").set("new_file_name.log");
op.get("file").set(file);
ModelControllerClient client = ModelControllerClient.Factory.create("localhost", 9999);
ModelNode result = client.execute(op);
if (result.hasDefined("outcome") && "success".equals(result.get("outcome").asString())) {
if (result.hasDefined("result")) {
System.out.println(result.get("result"));
}
} else if (result.hasDefined("failure-description")) {
throw new RuntimeException(result.get("failure-description").toString());
} else {
throw new RuntimeException("Operation not successful; outcome = " + result.get("outcome"));
}
另见: