Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j 2向控制台追加器添加多种颜色_Java_Xml_Jakarta Ee_Log4j2 - Fatal编程技术网

Java log4j 2向控制台追加器添加多种颜色

Java log4j 2向控制台追加器添加多种颜色,java,xml,jakarta-ee,log4j2,Java,Xml,Jakarta Ee,Log4j2,嗨,我刚刚下载并配置了log4j-2。我一直在为SlowConsole控制台附加程序应用颜色代码。我的控制台附件如下所示 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayo

嗨,我刚刚下载并配置了log4j-2。我一直在为
SlowConsole
控制台附加程序应用颜色代码。我的控制台附件如下所示

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
        </Console>
        <Console name="SlowConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}"/>
        </Console>
        <File name="File" fileName="C:\log\out.txt">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>
    <Loggers>
        <logger name="org.abc.ea.web" level="ALL" additivity="false">
            <!--Log4j for the WEB MODULE -->
            <appender-ref ref="SlowConsole"/>
        </logger>
        <logger name="org.abc.ea.ejb" level="ALL" additivity="false">
            <!--Log4j for the EJB MODULE -->
            <appender-ref ref="SlowConsole"/>
        </logger>
        <Root level="ERROR">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File" />
        </Root>
    </Loggers>
</Configuration>

我有两个问题

  • 我不熟悉log4j,这是编写xml配置文件的正确方法吗

  • 如何向每个日志级别添加两个颜色代码

    例如:DEBUG=green->将输出浅绿色字体,但我需要它是
    dim
    bold


  • 1:是的,没关系!您还可以添加一些其他选项。看

    2:您可以将HTMLLayout用于文件追加器


    我想我找到了解决办法。我下载了log4j2-core-sources.jar并跟踪了日志。你可以这样写

    <Console name="SlowConsole" target="SYSTEM_OUT">
         <PatternLayout disableAnsi="false"  pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/>
    </Console>
    
    
    

    我认为log4j2及其示例可能需要更新。

    在使用eclipse控制台时,很高兴看到红色和红色的错误 所有其他日志均为黑色。可以使用过滤器执行此操作:

    <Appenders>
        <Console name="ConsoleStdOut" target="SYSTEM_OUT">
            <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/>
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <Console name="ConsoleStdErr" target="SYSTEM_ERR">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="ConsoleStdOut" />
            <AppenderRef ref="ConsoleStdErr" />
        </Root>
    </Loggers>
    

    对于看起来非常接近Spring Boot默认logback控制台输出的log4j2彩色输出:

        <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} %style{${sys:PID}}{magenta} [%15.15t] %style{%-40.40C{1.}}{cyan} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
        </Console>
    
    
    

    
    
    这在我的Spring Boot应用程序中起作用

    但我不确定它是否能在没有弹簧靴的情况下工作。

    弹簧靴风格:

    
    %d{yyyy-MM-dd HH:MM:ss.SSS}%高亮显示{${LOG_-LEVEL_-PATTERN:-%5p}{FATAL=red,ERROR=red,WARN=yellow,INFO=green,DEBUG=green,TRACE=green}%style{${sys:PID}{magenta}-[%15.15t]%style{-40.40c{1.}{青色}:%m%n%ex
    
    谢谢@Homayoun!我的第二个问题还没有解决。我正在使用一个控制台。我希望我的日志可以在netbeans、eclipse或任何STD_OUT上查看。所以HTMLYout不会工作,不是吗?这取决于你的标准浏览器。。。例如,EclipseStdout(output)对粗体字没有任何意义。如果您能为文档提供补丁,那就太好了!永远感谢你的帮助!找到一个手动搜索
    highlight{pattern}{style}
    @harmeethingh是的,这个答案现在有点旧了。我还必须做disableAnsi=“false”来添加到@KalpeshSoni答案中
    disableAnsi=“false”
    进入
    旁边的
    pattern=“”
    添加了disableAnsi=“false”,这正是我在应用自定义日志配置后想要的!我从转换模式中的209位置获得了无法识别的转换说明符[wEx]。有人知道发生了什么吗?是的,它看起来像原始的Logback Spring记录器。正是我想要的。但如果PatternLayout标记中没有disableAnsi=“false”属性,它就无法工作。谢谢大家!@ycomp我已经修改了模式,您提到的问题也得到了解决。。。尝试以下模式:
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT" follow="true">
                <PatternLayout
                        pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx"/>
            </Console>
        </Appenders>
        <Loggers>
            <Root level="info">
                <AppenderRef ref="Console"/>
            </Root>
        </Loggers>
    </Configuration>