keylogger(keyloggers)怎么可以错过
大家平时使用Log4j一般都是在classpath下放置一个log4j的配置文件,比如log4j.xml,里面配置好Appenders和Logg
大家平时使用Log4j一般都是在classpath下放置一个log4j的配置文件,比如log4j.xml,里面配置好Appenders和Loggers,但是前一阵想做某需求的时候,想要的效果是每一个任务都要有一个单独的日志文件记录下来,比如job.001.log,job.002.log这种,这种完全不能使用配置文件来设置。
整体架构:
Log4j的组成:Log4j由三个重要的组成构成:日志记录器(Loggers),输出端(Appenders)和日志格式化器(Layout)1.日志记录器(Loggers):控制要输出哪些日志记录语句,对日志信息进行级别限制。
2.输出端(Appenders):指定了日志将打印到控制台还是文件中3.日志格式化器(Layout):控制日志信息的显示格式于是点开Log4j的源码,研究了一番,发现使用Log4j的底层代码完全可以动态生成新的Logger,比较关键的类有。
Configuration每一个LoggerContext都有一个有效的Configuaration,它包含了所有的Appenders、context-wide Filters、LoggerConfigs以及对StrSubstitutor的引用。
在重新配置期间,两个Configuaration会同时存在;一旦日志器被重新赋予新的Configuaration,旧的Configuaration就会停止工作并丢弃LoggerConfigLoggerConfig将会在Loggers在logging configuration中被声明的时候创建。
在LoggerConfig 拥有一列类的过滤器(Filter),这些过滤器将会过来所有的记录日志的事件,只有符合要求的日志才会被传递到Appenders因为LoggerConfig需要将事件传递给Appenders,所以它拥有一系列Appenders的引用。
Appender根据logger请求选择去接受或者拒绝该只是他们的一个能力Log4j允许日志打印服务打印到多个目的地上在Log4j的说法是一个输出的目的地对应着一个Appdender现在的Appender允许是console, files, remote socket servers, Apache Flume, JMS, remote UNIX Syslog daemons, and various database APIs。
是在Log4j2.3下测试通过的。注意在不使用Logger的时候一定要调用stop方法将Logger移除,不然我自己测试生成7000多个Logger后便会报错open too many file。
测试类:
致谢,感谢您的阅读!
- 标签:
- 编辑:李松一
- 相关文章
-
笑咪咪童装(乖一点童装加盟)奔走相告
最近很多人都在网上留言说,现在不管走到哪、在做什么事,都会听见一句"来了老弟儿"。但真正了解网红"腰子姐"…
-
po朝霆(数字王国公司与po朝霆)太疯狂了
深挖“穷人越穷,富人越富”的逻辑怪圈,想要跳出来打破这奇怪的禁锢,发展副业就成为了大势所趋。在有钱人一抓一大把的娱乐圈,这一现象…
- 抄表(抄表过程中的漏抄,错抄以及计量)快来看
- 小姑子的味道(小姑子的味道完整视频带翻译)学会了吗
- 投影键盘(投影键盘什么时候出的)奔走相告
- 精影显卡怎么样(精影显卡质量怎么样)学到了
- cect手机(cect手机现在还有吗)学到了