我会告诉log4j2与JSONLayout相同的消息对象。例如我的配置是:
猫 log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="Json" fileName="/home/jeus/log/loggerjson/main.log" bufferedIO="true" advertiseURI="file://home/jeus/log/loggerjson/main1.log" advertise="true">
<JSONLayout compact="true" locationInfo="true" complete="false" eventEol="true" properties="true" propertiesAsList="true"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Json"/>
</Root>
</Loggers>
Run Code Online (Sandbox Code Playgroud)
我的输出输出:
cat /home/jeus/log/loggerjson/main.log
{
"timeMillis":1502359773290,
"thread":"main",
"level":"INFO",
"loggerName":"com.jeus.logger.json.loggerjson.Main",
"message":"This message is a raw",
"endOfBatch":false,
"loggerFqcn":"org.apache.logging.log4j.spi.AbstractLogger",
"contextMap":[ ],
"threadId":1,
"threadPriority":5,
"source":{
"class":"com.jeus.logger.json.loggerjson.Main",
"method":"main",
"file":"Main.java",
"line":61
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个 json 对象来记录,但没有在消息中显示 json 对象,并用\"字符显示
JSON 对象:
{"line_id": …
Run Code Online (Sandbox Code Playgroud) 在我的页面中有一些commandButton打开对话框.表有300行,关闭HTML对话框后不会破坏并保留在HTML页面中.我想隐藏后在对话框中销毁数据.然后单击commandButton重复操作加载对话框并在对话框中加载数据.我发现了这种方法
<p:ajax event="close" update="growl" listener="#{dialogBean.handleClose}"/>
Run Code Online (Sandbox Code Playgroud)
但不知道如何从facescontext中销毁对话框.
我怎么知道一个类的实例是否已经存在于内存中?
我的问题是,如果存在Class的实例,这是我的代码,不想读取方法
private void jButton (java.awt.event.ActionEvent evt) {
PNLSpcMaster pnlSpc = new PNLSpcMaster();
jtabbedPanel.addTab("reg",pnlSpc);
}
Run Code Online (Sandbox Code Playgroud)
我想检查实例PNLSpcMaster
当然我可以通过静态布尔检查,但我认为这种方式更好.