Java 如何使用Apache链锯打开log4j2日志
我很难用Apache Chainsaw v2打开日志。 我无法使用zeroconf成功打开日志,也无法使用默认的xmllayout。在.net中,它对我来说就像一种魅力。但在Java中,这是一场噩梦 主要类别:Java 如何使用Apache链锯打开log4j2日志,java,logging,log4j,log4j2,apache-chainsaw,Java,Logging,Log4j,Log4j2,Apache Chainsaw,我很难用Apache Chainsaw v2打开日志。 我无法使用zeroconf成功打开日志,也无法使用默认的xmllayout。在.net中,它对我来说就像一种魅力。但在Java中,这是一场噩梦 主要类别: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Start { public static Logger logger = Lo
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Start {
public static Logger logger = LogManager.getLogger(Start.class);
public static void main(String[]args){
logger.info("Example log info");
logger.trace("Example log trace");
logger.debug("Example log debug");
logger.error("Example log error");
logger.fatal("Example log fatal");
logger.warn("Example log warn");
return;
}
}
Log4j2配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ALL" advertiser="multicastdns">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="custom layout %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="log4j2Chainsaw" fileName="output.log" bufferedIO="false" advertiseURI="file:///C:/Users/gswiec/IdeaProjects/Log4j2ChainsawExample/output.log" advertise="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="xmlLayoutForChainsaw" fileName="output.xml" bufferedIO="false" >
<XmlLayout/>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console"/>
<AppenderRef ref="log4j2Chainsaw"/>
<AppenderRef ref="xmlLayoutForChainsaw"/>
</Root>
</Loggers>
</Configuration>
如果您能提出不同的方法来提高日志的可读性,我将非常感谢您的帮助。Apache chainsaw似乎不是一个实时项目,我不确定使用它是否是一个好主意。您应该使用一个不会启动并立即退出的应用程序进行测试,否则它将没有时间发布消息并让chainsaw接收事件
我刚刚在Start.java文件中添加了以下内容:
import java.util.Scanner;
...
public static void main(String[]args){
Scanner in = new Scanner(System.in);
int i = in.nextInt();
我还更新了log4j配置-对于用于生成output.log的PatternLayout,您需要使用%m而不是%msg
<File name="log4j2chainsawappender" fileName="output.log" bufferedIO="false" advertiseURI="file://Users/scott/eu.swiec.log4j2apacheexample/output.log" advertise="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m"/>
然后我启动了ChainsawV2(git的最新版本),并启动了你的应用程序
启动应用程序后,我选择了Chainsaw的“连接到,log4j2chainsawappender”,出现了一个新选项卡,并正确设置了日志事件的格式,将“开始”解析为日志记录器,正确的严重性级别等
<File name="log4j2chainsawappender" fileName="output.log" bufferedIO="false" advertiseURI="file://Users/scott/eu.swiec.log4j2apacheexample/output.log" advertise="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m"/>