手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
IT修真院_JAVA
Log4j和Sout
Log4j和Sout
作者:
idiot丶伟伟
| 来源:发表于
2017-11-27 00:42 被阅读0次
大家好,我是IT修真院上海分院第02期学员,一枚正直善良的Java程序员。
今天给大家分享一下,修真院官网task1任务中可能会使用到的知识点:
Log4j和Sout
log4j
1.背景介绍
在应用程序中添加日志记录总的来说基于三个目的:
(1)监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作
(2)跟踪代码运行时轨迹,作为日后审计的依据
(3)担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。
最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。
2.知识剖析
在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外, Apache为我们提供了一个强有力的日志操作包 Log4j 。
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
精确控制日志的输出,包括输出的格式,输出的目的地,输出的过滤(不同级别日志的输出)等。
配置简单,不需要在代码中配置环境,支持两种配置文件格式,XML和Java特性文件(键=值,常见的.properties),常用后者如 log4j.properties
配置文件需要配置 3 个方面的内容:
(1)根目录(级别和目的地);(2)
目的地(控制台、文件等等);(3)
输出样式。
log4j的基本使用方法:
Log4j 由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有 ERROR 、 WARN 、 INFO 、 DEBUG ,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
(1)Logger -日志写出器,供程序员输出日志信息
Log4j的Loggers组件建议使用四个级别:DEBUG、INFO、WARN、ERROR。这四个级别是有顺序的,DEBUG < INFO < WARN < ERROR ,分别用来指定这条日志信息的重要程度。
这里Log4j有一个规则:假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。
假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
(2)Appender -日志目的地,把格式化好的日志信息输出到指定的地方去
Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。
其语法表示为:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
(3)Layout -日志格式化器,用来把程序员的 logging request 格式化成字符串
有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供了四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。
其语法表示为:
org.apache.log4j.HTMLLayout(以HTML表格形式布局) org.apache.log4j.PatternLayout(可以灵活地指定布局模式) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
3.常见问题
为什么要用Log4j来替代System.out.println?
4.解决方案
Log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。
程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。
使用log4j可以很好的处理类似情况。
5.编码实战
6.扩展思考
如果不用log4j.properties,用xml格式配置日志的话,应该怎么配置?
7.参考文献
文献1:http://blog.csdn.net/win7system/article/details/51602239
文献2:https://www.cnblogs.com/godtrue/p/6442273.html
文献3:http://www.open-open.com/lib/view/open1402654461790.html
8.更多讨论
问:rolling 能不能实现每天的日志都单独放在一个文件里?
答:这个主要功能是回滚。设置每天都建新的文件存放日志的话是org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)的类。
问:在实际开发中是否推荐使用aop打日志呢
答:推荐。AOP是个非常好用的工具。
问:log4j如何加载log4j.properties?更换配置文件名还能加载吗?
答:在实例化后,默认加载resource下面的log4j.xml,没有的话就加载log4j.properties。
若默认路径没有,则需要进行手动加载。
PropertyConfigurator.configure(配置文件全路径)
问:log4j的4代表什么?
log4j 其实就是 log for java。4(four)和for
ppt戳这
感谢大家观看!
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
我的邀请码:
12190840
,或者你可以直接点击此链接:
http://www.jnshu.com/login/1/12190840
相关文章
网友评论
IT修真院_JAVA
本文标题:
Log4j和Sout
本文链接:
https://www.haomeiwen.com/subject/aqdlbxtx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
IT修真院_JAVA
摄影
故事
互联网
读书
旅行
热点阅读
自动自发
咖喱饭🍛
浦和红钻拿了亚冠,其实我有点意外
周六夕会总结
妈妈说
淡定淡定再淡定
写给朋友圈的第二封信
重复的游戏 2017-11-26
一个老实人的自白
滋味
IT修真院_JAVA
震惊!分页数据查询竟然还能够这样写?判断下一页的方法还能这样?
ApplicationContext无法加载bean的问题
关于@Autowired、
为什么要用Log4j来替代System.out.println
db设计中的字段“修真类型”该存储什么类型?
太吓人了!自增ID居然有这种坏处!什么样的场景下不使用自增ID?
什么是HTTP协议?
Log4j的好处——同SystemOutPrintIn的比较
【北京分院一百七十三期】有哪些常见的验证表单方式(即时输入验证,
log4j浅析及简单用法
网友评论