如何通过Java更改JBoss 7日志配置?

时间:2014-12-17 15:09:47

标签: java jboss7.x

我已经在JBoss-7 standalone.xml中添加了自定义记录器,并且我提到了日志文件名,例如/home/sample/sample.log,并且日志信息在该位置正确打印但我的要求是“需要动态更改日志名称”。我可以通过JBoss log cli命令更改日志名称。 “是否可以通过Java代码更改日志文件名?”

1 个答案:

答案 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"));
}

另见: