Java程序运行时,动态修改Logger的appender。 背景 在程序运行的时候,有的时候需要动态修改Logger的级别,增加、删除、修改Logger的Appender。...*/ FileAppender appender = new FileAppender(); appender.setEncoder(encoder);...appender.setFile("/home/bash/workspace/temp/test.log"); appender.setName("TestFile");...appender.setAppend(false); appender.setContext(lc); /*这里启动encoder和appender。...("这里时一条所有appender都可以输出的数据。")
Logback将执行日志事件输出的组件称为Appender,实现的Appender必须继承 ch.qos.logback.core.Appender 接口 接口如下: package...appender的父类。...SiftingAppender是通过创建内置的Appender来完成这些功能的,通过使用 。...SiftingAppender负责管理这些子Appender的生命周期。SiftingAppender会自动关闭和移除过期的appender。...appender,不过appender的销毁并不是实时的,而是等待几秒后,防止还有未处理的日志丢失。
.* = false : 表示当前logger不需要打到父层级所指定的appender,只打到当前的appender; 默认true:表示当前logger将打印日志到当前的appender...及所有的父层级所指定的appender ?...2、将日志信息封装成 LoggingEvent 对象并传入 Appender。...3、在 Appender 中调用 Filter 对日志信息进行过滤,调用 Layout 对日志信息进行格式化,然后输出。 图示: ?...实现自定义log4j Appender 明白了log4j的结构关系实现自定义的log4j appender就迎刃而解了 继承log4j公共的基类:AppenderSkeleton 打印日志核心方法
来生成对应的回滚日志文件,具体由com.lewis这个logger来使用该appender进行拼接日志信息。...在用户登录时,调用上边的方法来动态生成domain appender;假如有10个domainId,就会生成10个domain appender。...由于这10个domain appender都被add到同一个logger里了,如果不通过ThreadContextMapFilter来控制,就会造成每个User的日志信息都会被输入到所有domain appender...在加载配置文件后拼接domain appender 需要注意的是,必须在读取配置文件后才能去动态生成appender或者其他的日志对象,否则会被原本的配置文件覆盖掉。...参考链接 运行时添加log4j2的appender log4j2如何动态的创建logger和appender log4j2 不使用配置文件,动态生成logger对象 log4j2的MDC应用配置 警告
前面写了个cassandra-appender,一个基于cassandra的logback插件。...所以,cassandra-appender核心功能就是对logback消息的存写部分了。同样,基于ES的logback-appender核心部分就是对ES的存写过程了。...ref="cassandraLogger" /> <appender-ref ref="STDOUT...首先,不同level可以使用不同的appender。cassandraLogger,elasticLogger是我们自定义的appender。...loggerContext.stop()一次性关闭所有appender,包括它们连接的数据库。也可以用elasticAppender.stop()来关闭独立的appender。
#用户身份标识,必选参数 log4j.appender.loghubAppender.accessKeyId=自己的的SecretId log4j.appender.loghubAppender.accessKeySecret...=自己的的SecretKey #设置log字段的格式,必选参数 log4j.appender.loghubAppender.layout=org.apache.log4j.PatternLayout log4j.appender.loghubAppender.layout.ConversionPattern...log4j.appender.loghubAppender.maxBlockMs=0 #执行日志发送任务的线程池大小,默认为可用处理器个数。...log4j.appender.loghubAppender.retries=10 #该参数越大能让您追溯更多的信息,但同时也会消耗更多的内存。...log4j.appender.loghubAppender.maxRetryBackoffMs=50000 #设置时间格式,可选参数 log4j.appender.loghubAppender.timeFormat
logback是一套开发架构,任何定制的appender可以很方便地整合入logback。那么我们就尝试开发一套基于cassandra的logback-appender。...好了,以上运作流程都包括在logback的功能里了,跟消息的存储appender没什么关系。下面我们就开始自制一套基于cassandra的appender。...上面提过,logback是一套开放的框架,任何按照logback要求开发的appender都可以很方便的整合入logback的功能中去。...> <appender-ref ref="STDOUT
文件名 说明 LogbackMain 应用main启动类 LogPrint 业务类(需要打印日志的类) HandleAppender logback中自定义的appender处理类 MyPolicy 自定义处理策略...if (this.layout == null) { this.addStatus(new ErrorStatus("No layout set for the appender...} 以上使用一个定时线程池固定频率模拟业务系统打印日志,触发日志定制化处理功能 MyPolicy类说明 该类比较简单,不再说明 详细可查阅 Github代码 logback.xml配置说明 需要注意的点都已在xml注释中说明,此处不再赘述 运行情况
log4j.properties 文件的一个appender X的语法分享: # 根日志记录器(logger)的级别定义为DEBUG并连接附加器命名为X log4j.rootLogger...= DEBUG, X # 附加器(appender)X是定义为org.apache.log4j.FileAppender并写入到一个名为“log.out”位于日志log目录下...log4j.appender.X=org.apache.log4j.FileAppender log4j.appender.X.File=${log}/log.out # 定义的布局模式是...%m%n,这意味着每打印日志消息之后,将加上一个换行符 log4j.appender.X.layout=org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5_APPENDER.MaxNumberOfRecords...=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=web@www.wuset.com log4j.appender.MAIL.SMTPHost...log4j.appender.DATABASE.user=root log4j.appender.DATABASE.password= log4j.appender.DATABASE.sql...=org.apache.log4j.xml.XMLLayout #自定义Appender log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender...log4j.appender.im.host = mail.cybercorlin.net log4j.appender.im.username = username log4j.appender.im.password
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n #common log appender # log4j.appender.logfile...log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n #error log appender # log4j.appender.errorfile...=ERROR log4j.appender.errorfile.append=true log4j.appender.errorfile.encoding=GB18030 log4j.appender.errorfile.layout...#sql log appender # log4j.appender.sqllog=org.apache.log4j.DailyRollingFileAppender log4j.appender.sqllog.File...log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n #common log appender # log4j.appender.logfile
log4j.appender.SOCKET.RemoteHost=localhost log4j.appender.SOCKET.Port=5001 log4j.appender.SOCKET.LocationInfo...######################## log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5...log4j.appender.A5.BufferSize=5 log4j.appender.A5.To=chunjie@yeqiangwei.com log4j.appender.A5.From...=FATAL, A8 # APPENDER A8 log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender log4j.appender.A8...log4j.appender.A5.From=error@yeqiangwei.com log4j.appender.A5.Subject=ErrorLog log4j.appender.A5.
(指定输出到邮件) log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From...## log4j.appender.A2.MaxFileSize=500KB ### 文件大小## log4j.appender.A2.MaxBackupIndex=1 log4j.appender.A2..._APPENDER=org.apache.log4j.lf5.LF5Appender #log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 ...####################### # Log Factor 5 Appender ######################## #log4j.appender.LF5_APPENDER...=org.apache.log4j.lf5.LF5Appender #log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 ##############
log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout 4、目的地 配置日志信息输出目的地Appender,其语法为 log4j.appender.appenderName...## log4j.appender.A2.MaxFileSize=500KB ### 文件大小## log4j.appender.A2.MaxBackupIndex=1 log4j.appender.A2...######################## # Log Factor 5 Appender ######################## #log4j.appender.LF5_APPENDER...=org.apache.log4j.lf5.LF5Appender #log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 #############...###### #自定义Appender ################### #log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
true ... true <appender-ref
---------- log4j.appender.appender1.File=c:/demolog4j.htm --------------终端输出的样式----------------- log4j.appender.appender1... log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender2=org.apache.log4j.ConsoleAppender...log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.layout=org.apache.log4j.PatternLayout...=debug,appender1,appender2 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1...HH:mm:ss:SSS}][%c] %m%n log4j.appender.appender2=org.apache.log4j.FileAppender log4j.appender.appender2
kafka的log4j日志默认配置中,有如下配置: log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.kafkaAppender.DatePattern...将上述配置修改为 log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.kafkaAppender.DatePattern...yyyy-MM-dd log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log log4j.appender.kafkaAppender.layout...yyyy-MM-dd log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log log4j.appender.requestAppender.layout...yyyy-MM-dd log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log log4j.appender.cleanerAppender.layout
及Appender选项 log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option...= logs/log.log log4j.appender.fileAppender.Append = true log4j.appender.fileAppender.Threshold = DEBUG...log4j.appender.ROLLING_FILE.Threshold=ERROR log4j.appender.ROLLING_FILE.File=rolling.log log4j.appender.ROLLING_FILE.Append...=true log4j.appender.ROLLING_FILE.MaxFileSize=10KB log4j.appender.ROLLING_FILE.MaxBackupIndex=1 log4j.appender.ROLLING_FILE.layout...log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=chenyl
8 log4j.appender.file.MaxFileSize=102400KB 9 log4j.appender.file.MaxBackupIndex=100 10 log4j.appender.file.File...log4j.appender.appender1.MaxFileSize=最大文件大小 log4j.appender.appender1.MaxBackupIndex=备份文件个数 其中,appender1... ######################## log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5... log4j.appender.A5.BufferSize=5 log4j.appender.A5.To=chunjie@yeqiangwei.com log4j.appender.A5.From...log4j.appender.A5.From=error@yeqiangwei.com log4j.appender.A5.Subject=ErrorLog log4j.appender.A5.
配置日志信息输出目的地Appender,其语法为: log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1...log4j.appender.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout...log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5_APPENDER.MaxNumberOfRecords...log4j.appender.MAIL.SMTPHost=www.wusetu.com log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To...log4j.appender.im.username = username log4j.appender.im.password = password log4j.appender.im.recipient
领取专属 10元无门槛券
手把手带您无忧上云