`
ellen1990
  • 浏览: 4864 次
文章分类
社区版块
存档分类
最新评论

日志管理

阅读更多
1、final Logger logger = LoggerFactory.getLogger(CommonAction.class);
中的CommonAction.class指的是输出日志信息所在的类。
2、SLF4J( http://logback.qos.ch/ )比Log4J都要优秀(Log4J涉及到字符串连接和toString()方法的调用). 这里的{}带来的另一个好处, 我们在尽量不损失性能的情况, 不必为了不同的日志输出级别, 而加上类似isDebugEnabled()判断.

如果把log4j看做System.out.println()的话, 那么Perf4J就是System.currentTimeMillis()

Perf4J可以帮助我们更方便的输出系统性能的日志信息. 然后借助其他报表工具将日志以图表的形式加以展现, 从而方便我们分析系统的性能瓶颈. 关于Perf4J的使用可以参考它的开发者指南(http://perf4j.codehaus.org/devguide.html).
ERROR:系统发生了严重的错误, 必须马上进行处理, 否则系统将无法继续运行. 比如, NPE, 数据库不可用等.

WARN:系统能继续运行, 但是必须引起关注. 对于存在的问题一般可以分为两类: 一种系统存在明显的问题(比如, 数据不可用), 另一种就是系统存在潜在的问题, 需要引起注意或者给出一些建议(比如, 系统运行在安全模式或者访问当前系统的账号存在安全隐患). 总之就是系统仍然可用, 但是最好进行检查和调整.

INFO:重要的业务逻辑处理完成. 在理想情况下, INFO的日志信息要能让高级用户和系统管理员理解, 并从日志信息中能知道系统当前的运行状态. 比如对于一个机票预订系统来说, 当一个用户完成一个机票预订操作之后, 提醒应该给出"谁预订了从A到B的机票". 另一个需要输出INFO信息的地方就是一个系统操作引起系统的状态发生了重大变化(比如数据库更新, 过多的系统请求).

DEBUG:主要给开发人员看, 下面会进一步谈到.

TRACE: 系统详细信息, 主要给开发人员用, 一般来说, 如果是线上系统的话, 可以认为是临时输出, 而且随时可以通过开关将其关闭. 有时候我们很难将DEBUG和TRACE区分开, 一般情况下, 如果是一个已经开发测试完成的系统, 再往系统中添加日志输出, 那么应该设为TRACE级别.
3、日志的副作用:
(1)影响系统的性能。ps:在默写情况下,hibernate会抛出LazyInitializationException,这是因为某些日志输出导致延迟初始化的集合在session建立时被加载,而在某些场合下,提高日志输出级别时,问题就会消失。
(2)系统运行越来越慢。不恰当的使用tostring方法和字符串连接,使得系统出现性能问题。ps:某个系统每15分钟就重启一次,主要原因是执行log输出出现线程饥饿(饥饿可以认为是一个线程或是进程在无限的等待另外两个或多个线程或进程占有的但是不会往外释放的资源)导致。一般情况下,一个系统在一个小时内产生几百MB的时候就要小心了。

(1). 输出方式appender一般有5种:
             org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)
             org.apache.log4j.ConsoleAppender (控制台) 
             org.apache.log4j.FileAppender (文件)
             org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
             org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

(2). 日记记录的优先级priority,优先级由高到低分为
            OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
            Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。

(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
                %c        输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)
                %d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
                %l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
                %n       换行符
                %m      输出代码指定信息,如info(“message”),输出message
                %p       输出优先级,即 FATAL ,ERROR 等
                %r        输出从启动到显示该log信息所耗费的毫秒数
                %t        输出产生该日志事件的线程名


(引自http://macrochen.iteye.com/blog/1399082)
分享到:
评论

相关推荐

    不错的ext日志管理系统

    EXT日志管理系统是一款高效、强大的日志管理工具,专为处理和分析大量系统、应用程序或网络设备的日志数据而设计。EXT在日志管理领域的应用广泛,尤其对于开发者和运维人员来说,它提供了便捷的方式来监控、排查问题...

    C#,WPF日志管理 C#编程--项目常用日志保存

    在IT行业中,日志管理是软件开发中的一个重要环节,它对于调试、监控系统运行状态以及问题排查至关重要。本文将深入探讨C#编程环境下,结合Windows Presentation Foundation (WPF)技术如何实现日志管理,包括按照年...

    HTML5实现的日志管理系统

    在日志管理系统中,可以用来暂时保存用户的登录状态、当前页面的浏览记录等,确保用户在同一个会话内操作的连贯性。 - localStorage:与sessionStorage相似,但其存储的数据不会随着浏览器会话的结束而消失,除非...

    日志管理系统需求分析.pdf

    根据提供的文件信息,文档的标题是“日志管理系统需求分析.pdf”,这意味着文档的焦点是分析和阐述一个日志管理系统在实施前所需满足的功能性及非功能性需求。描述部分重复了标题内容,未提供额外信息。标签“技术及...

    日志管理与分析权威指南.pdf

    1. 日志管理与分析的必要性:日志管理与分析是IT安全领域的重要组成部分,特别是在大数据环境下,它能够帮助企业维护系统安全,提升安全运营的效率和效果。日志作为记录系统活动和事件的详细记录,是态势感知和安全...

    基于Java web的工作日志管理系统文档 .doc

    【基于Java Web的工作日志管理系统文档】 工作日志管理系统是一个重要的工具,用于提升工作效率和团队协作,尤其在当今数字化时代,信息安全和数据管理的需求日益增长。传统的纸质日志或通知方式已经不能满足现代...

    员工工作日志管理系统1.0源码.rar

    《员工工作日志管理系统1.0源码》是一款专为企业管理设计的应用,旨在高效地跟踪和管理员工的工作日志,从而提升工作效率,优化工作流程。该系统的核心功能包括员工日志记录、工作状态追踪、任务分配及反馈等,为...

    嵌入式log日志管理代码库

    嵌入式系统中的日志管理是开发过程中至关重要的一环,它可以帮助开发者跟踪系统运行状态、定位问题、优化性能。EasyLogger是一款广泛应用于嵌入式领域的轻量级日志管理库,因其高效、易用和可定制性而备受赞誉。本文...

    日志管理系统

    日志管理系统是IT行业中至关重要的一个组成部分,它主要用于收集、存储、分析以及监控应用程序和系统产生的日志数据。日志信息记录了系统运行时的详细情况,包括错误、警告、调试信息等,对于故障排查、性能优化、...

    【毕设】基于SSH+JSP+MYSQL的员工工作日志管理系统源码.zip

    【毕设】基于SSH+JSP+MYSQL的员工工作日志管理系统是一套完整的Web应用程序,旨在帮助企业管理并记录员工的工作日志。系统采用Struts2(S)作为表现层框架,Spring(S)作为业务层框架,Hibernate(H)作为持久层...

    日志管理系统asp

    【日志管理系统ASP】是一种基于ASP(Active Server Pages)技术构建的应用程序,主要用于收集、存储、分析和管理服务器或应用程序生成的日志数据。在IT领域,日志管理系统是不可或缺的工具,它帮助管理员监控系统...

    工作日志管理系统

    工作日志管理系统是一种高效的工作流程管理工具,特别适用于企业中对员工日常工作内容的记录与跟踪。这个系统的主要目的是促进团队沟通、提高工作效率,并为管理者提供一个全面了解员工工作情况的平台。 工作日志...

    Oracle的日志管理攻略

    ### Oracle的日志管理攻略 #### 一、Oracle数据库的日志管理 **1.1 日志文件的作用** 在Oracle数据库管理中,日志文件扮演着极其重要的角色。它们不仅记录了数据库的各种活动,还帮助数据库管理员(DBA)及时发现并...

    c# 日志管理 可以备份,删除过期的日志等

    在IT行业中,日志管理是系统维护和故障排查的关键部分,尤其对于使用C#开发的软件应用程序来说。本文将深入探讨C#中的日志管理,包括如何实现日志备份、删除过期日志以及通过配置文件(如web.config)进行定制化设置...

    .net员工工作日志管理系统

    《.NET员工工作日志管理系统详解》 在现代企业中,高效的工作日志管理是提升团队协作和项目执行效率的关键。.NET员工工作日志管理系统就是为此目的而设计的,它利用先进的.NET技术,为企业提供了全面、规范且易用的...

    C#.net 办公日志管理系统办公日志管理系统办公日志管理系统

    C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理...

    spring hibernate 日志管理插件

    日志管理:通过统一的日志管理器处理功能日志与数据日志关联。提供数据身份标识接口,满足针对表及身份联合查询对照。 日志记录:以JSON格式输出日志,通过log4j配置日志文件输出方式。 日志查询:提供servlet...

    linux系统管理-日志管理和分析分享.pdf

    Linux系统管理-日志管理和分析分享 在 Linux 系统中,日志管理和分析是系统管理员不可或缺的一部分。日志管理主要包括日志文件的收集、存储、分析和报告等几个方面。日志文件是系统中最重要的信息来源,它记录了...

    基于面向对象系统日志管理模块的设计与实现.pdf

    【日志管理】是软件开发中的重要组成部分,用于记录系统运行状态、错误信息以及调试信息。面向对象的设计方法被广泛应用于日志管理模块,以提高模块的可维护性和复用性。面向对象设计的核心思想是将数据和操作数据的...

Global site tag (gtag.js) - Google Analytics