在多读一点文档,我们发现有个ConsoleAppender。于是我们创建了一个ConsoleAppender,再看是否能解开控制台输出日志的秘诀。 testLogAddAppender(){Logger logger = Logger.getLogger("MyLogger");logger.removeAllAppenders();logger.addAppender(new ConsoleAppender 必须告知ConsoleAppender,让它往控制台写字,看起来有点奇怪。很有趣,当我们移除ConsoleAppender.SystemOut参数时,那个“hello”字样仍然输出到屏幕上。 再仔细看看文档,我们看到默认的ConsoleAppender构造器时”未配置”的,这看起来并不明显或没什么用,反而像是log4j的一个缺陷,或者至少时前后不太一致。 logger.info("addAppenderWithStream");}@Testpublic void addAppenderWithoutStream() {logger.addAppender(new ConsoleAppender
log4j.dtd"> <log4j:configuration xmlns:log4j=" http://jakarta.apache.org/log4j/" > <appender name="<em>ConsoleAppender</em> " class="org.apache.log4j.<em>ConsoleAppender</em>" > <layout class="org.apache.log4j.PatternLayout appender> <root> <priority value="info" /> <appender-ref ref="<em>ConsoleAppender</em> " class="org.apache.log4j.<em>ConsoleAppender</em>" > <layout class="org.apache.log4j.PatternLayout " class="org.apache.log4j.<em>ConsoleAppender</em>" > <layout class="org.apache.log4j.PatternLayout
3.2 输出方法 在Logback中,Console日志输出通过ConsoleAppender实现。 以下是一个简单的ConsoleAppender配置示例: <appender name="CONSOLE" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> 5.2 输出方法对比 Console日志:通过ConsoleAppender实现,配置简单,适合快速查看日志。 此时,可以只配置ConsoleAppender,或者同时配置ConsoleAppender和RollingFileAppender,以便在需要时查看文件日志。 此时,可以只配置RollingFileAppender,或者同时配置ConsoleAppender和RollingFileAppender,以便在需要时查看控制台日志。 7.
= consoleAppender(config);if (this.logFile ! ILoggingEvent> fileAppender = fileAppender(config, this.logFile.toString());config.root(Level.INFO, consoleAppender , fileAppender);}else {config.root(Level.INFO, consoleAppender);}}}//......}DefaultLogbackConfiguration console-appender.xml及file-appender.xml,不过它把相关配置直接写在代码里头省去xml解析,效率高一点;这里的apply代码显示执行base(config),再是创建consoleAppender 它集成了defaults.xml、console-appender.xml、file-appender.xml;而新版的话默认是通过DefaultLogbackConfiguration来定义base、consoleAppender
initialization performed by Boot --> <included> <appender name="CONSOLE" class="ch.qos.logback.core.<em>ConsoleAppender</em> = <em>consoleAppender</em>(config); if (this.logFile ! , fileAppender); } else { config.root(Level.INFO, <em>consoleAppender</em>); } } } //...... console-appender.xml及file-appender.xml,不过它把相关配置直接写在代码里头省去xml解析,效率高一点;这里的apply代码显示执行base(config),再是创建<em>consoleAppender</em> 它集成了defaults.xml、console-appender.xml、file-appender.xml;而新版的话默认是通过DefaultLogbackConfiguration来定义base、<em>consoleAppender</em>
=debug,appender1 --------------日志信息到终端输出----------------- log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender2=org.apache.log4j.ConsoleAppender -------------------------------------- ------------------------------------------- 常用的Appender: org.apache.log4j.ConsoleAppender(控制台) %l - %m%n 例子二: log4j.rootLogger=debug,appender1,appender2 log4j.appender.appender1=org.apache.log4j.ConsoleAppender xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="CONSOLE" class="org.apache.log4j.<em>ConsoleAppender</em>
log4j.properties配置文件案例 根据上文对配置文件的分析,下面给出一个具体的log4j.properties配置文件,完整的进行了各个方面的配置: log4j.rootLogger=INFO,consoleAppender ,logfile,MAIL log4j.addivity.org.apache=true #ConsoleAppender,控制台输出 #FileAppender,文件日志输出 #SMTPAppender log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.Threshold = ERROR log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern =%d %-5p %m %n log4j.appender.consoleAppender.ImmediateFlush = true # 直接输出,不进行缓存 log4j.appender.consoleAppender.Target
-- Console部分log输出格式的设定 --> <appender name="<em>ConsoleAppender</em>" type="log4net.Appender.<em>ConsoleAppender</em> appenders and set the default level --> <root> <level value="ALL" /> <appender-ref ref="<em>ConsoleAppender</em> -- Console部分log输出格式的设定 --> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" add the appenders and set the default level --> <root> <level value="ALL" /> <appender-ref ref="<em>ConsoleAppender</em>
新建并配置log4j.properties #定义输出级别和输出平台,控件台输出 log4j.rootLogger=debug, stdout #设定stdout输出平台 org.apache.log4j.ConsoleAppender (控制台) log4j.appender.stdout=org.apache.log4j.ConsoleAppender #org.apache.log4j.PatternLayout(可以灵活地指定布局模式 (控制台) log4j.appender.stdout=org.apache.log4j.ConsoleAppender #指定输出的最低级别 log4j.appender.stdout.Threshold (控制台) log4j.appender.stdout=org.apache.log4j.ConsoleAppender #指定输出的最低级别 log4j.appender.stdout.Threshold (控制台) log4j.appender.stdout=org.apache.log4j.ConsoleAppender #指定输出的最低级别 log4j.appender.stdout.Threshold
-- 定义日志的输出媒介 --> <root> <appender-ref ref="<em>ConsoleAppender</em>"/> <appender-ref ref="R"/> </root -- 定义输出到控制台 --> <appender name="<em>ConsoleAppender</em>" type="log4net.Appender.<em>ConsoleAppender</em>"> <layout with a PatternLayout log4net.Config.BasicConfigurator.Configure( new log4net.Appender.ConsoleAppender ( new log4net.Layout.PatternLayout("%d [%t] %-5p %c - %m%n"))); // using a ConsoleAppender with a SimpleLayout log4net.Config.BasicConfigurator.Configure( new log4net.Appender.ConsoleAppender(
--控制台日志--> <appender name="<em>consoleAppender</em>" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> --根日志记录器,所有包下面的日志都会别记录--> <root level="INFO"> <appender-ref ref="<em>consoleAppender</em>"/> < --控制台日志--> <appender name="<em>consoleAppender</em>" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> <encoder> --根日志记录器,所有包下面的日志都会别记录--> <root level="INFO"> <appender-ref ref="<em>consoleAppender</em>"/> </root> 此时控制台只会打印
config) { synchronized (config.getConfigurationLock()) { base(config); Appender<ILoggingEvent> consoleAppender = consoleAppender(config); if (this.logFile ! , fileAppender); } else { config.root(Level.INFO, consoleAppender); } } } private void ("org.hibernate.validator.internal.util.Version", Level.WARN); } private Appender<ILoggingEvent> consoleAppender (LogbackConfigurator config) { ConsoleAppender<ILoggingEvent> appender = new ConsoleAppender<>();
-- ch.qos.logback.core.ConsoleAppender是专用于控制台的Appender --> <appender name="CONSOLE" class=" ch.qos.logback.core.<em>ConsoleAppender</em>"> <encoder> <pattern>${CONSOLE_LOG_PATTERN -- 指定日志输出级别,以及启用的Appender,这里就使用了我们上面的ConsoleAppender 和FileAppender --> <root level
-- 定义日志的输出媒介 --> <root> <appender-ref ref="<em>ConsoleAppender</em>"/> <appender-ref ref="R"/> </root -- 定义输出到控制台 --> <appender name="<em>ConsoleAppender</em>" type="log4net.Appender.<em>ConsoleAppender</em>"> <layout with a PatternLayout log4net.Config.BasicConfigurator.Configure( new log4net.Appender.ConsoleAppender ( new log4net.Layout.PatternLayout("%d [%t] %-5p %c - %m%n"))); // using a ConsoleAppender with a SimpleLayout log4net.Config.BasicConfigurator.Configure( new log4net.Appender.ConsoleAppender(
appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout
-- conf consoel out --> 3 <appender name ="console_out" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> -- conf consoel out --> 4 <appender name ="console_out" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> – conf consoel out –> <appender name =”console_out” class=”ch.qos.logback.core.ConsoleAppender”> <encoder -- conf consoel out --> 4 <appender name ="console_out" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> -- conf consoel out --> 4 <appender name ="console_out" class="ch.qos.logback.core.<em>ConsoleAppender</em>">
."); ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>();
先来个配置文件—- log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender error包含fatal, debug包含上述所有级别 log4j.appender.stdout =——-表示输出方式 log4j.appender.stdout=org.apache.log4j.ConsoleAppender true" xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.<em>ConsoleAppender</em> :mm:ss} %-5p %c{1}:%L - %m%n # Direct log messages to stdout log4j.appender.stdout=org.apache.log4j.<em>ConsoleAppender</em> true" xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.<em>ConsoleAppender</em>
-- 配置 输出控制器:consoleAppender,控制台输出 --> <appender name="<em>consoleAppender</em>" class="ch.qos.logback.core.<em>ConsoleAppender</em> -- 配置 输出控制器:<em>consoleAppender</em>1,控制台输出 --> <appender name="consoleAppender1" class="ch.qos.logback.core.ConsoleAppender -- 配置 输出控制器:consoleFilterAppender,控制台输出 在 consoleAppender 的基础上 添加 过滤器 --> <appender name="consoleFilterAppender" class="ch.qos.logback.core.<em>ConsoleAppender</em>"> <! -- 导入实际的 Appender --> <appender-ref ref="<em>consoleAppender</em>"/> <!
ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> <appender name="<em>ConsoleAppender</em> " type="log4net.Appender.<em>ConsoleAppender</em>"> <layout type="log4net.Layout.PatternLayout"> <param > <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="<em>ConsoleAppender</em>