`
pesome
  • 浏览: 67989 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log,exception最佳实践

 
阅读更多

项目组对log和exception的讨论结果。希望更多的人参与讨论。
1
log

1.1 log.error表示系统级错误<!----><o:p></o:p>

1.2 log.warn表示应用级错误<o:p></o:p>

1.3 服务初始化或结束用log.info<o:p></o:p>

1.4 log.debug替代outdebug要判断isDebugEnable<o:p></o:p>

1.5 log.warn("",e)替代e.printstack<o:p></o:p>

1.6 log4e生成log相关代码<o:p></o:p>

1.7 Log信息要保证可读性,需记录现场信息,如当前处理id<o:p></o:p>

2 exception

2.1 try catch内的代码不要太长<o:p></o:p>

2.2 因为性能原因,try catch少放循环内<o:p></o:p>

2.3 尽量避免catch(Exception)这样的写法<o:p></o:p>

2.4 不同模块定义不同的exception<o:p></o:p>

2.5 建议创建应用的基类exception,特别是有定义error code需要的应用<o:p></o:p>

2.6 只要catch就要log error message<o:p></o:p>

2.7 catch并封装成另一种exception,如果不nest原来的exception就要log stackTrace<o:p></o:p>

2.8 持久层throw dataAccessException,业务层throw checked exception,展现层只显示exception信息<o:p></o:p>

2.9 规范的exception流程定义如下:<o:p></o:p>

业务层不需处理的runtime exception,由展现层定义的exception controller捕获,交给相应的error页面显示并记录stack信息。业务层捕获下层的exception,并封装成业务层的checked exception,如果nest所捕获的exception,则仅log error message,如果不nest就需要用log.warn(“”,e)记录stack信息。展现层捕获业务层的exception,应由处理业务层exceptionerror页面来处理。

分享到:
评论

相关推荐

    Log4Net日志实践

    6. **最佳实践** - 尽量避免在性能敏感的代码中使用日志,以免影响程序性能。 - 使用适当的日志级别,避免过多的信息淹没关键日志。 - 为不同模块或组件使用不同的Logger,便于管理和过滤日志。 7. **总结** ...

    .NET异常处理最佳实践

    以下是一些.NET异常处理的最佳实践: 1. **及早检查问题**:在代码执行的早期阶段就检测潜在的问题,能够更轻松地定位和修复错误。这包括对输入数据、资源可用性等方面的验证。 2. **不要信任外部数据**:无论数据...

    log4net 1.2.10.0

    五、应用场景与最佳实践 log4net广泛应用于生产环境,特别是在大型企业级应用中。合理地使用log4net可以帮助: 1. **调试问题**:通过日志快速定位代码中的错误和异常。 2. **性能监控**:记录关键操作的时间消耗...

    log4net配置和帮助类.rar

    这有助于初学者快速上手,并了解最佳实践。 总结起来,这个压缩包提供了一套完整的`log4net`日志管理解决方案,涵盖了配置文件、数据库接口、帮助类以及可能的教学材料,对于任何使用.NET开发并希望有效管理和分析...

    Android Log介绍

    4. 使用异常堆栈跟踪:当捕获到异常时,使用`Log.e()`配合`Exception.printStackTrace()`,这样可以获得完整的堆栈跟踪信息。 总结,Android Log系统是开发者调试和优化应用程序不可或缺的工具。熟练掌握LogCat的...

    log4j包的使用说明及api帮助文档

    `log4j包的使用说明及api帮助文档`可能是更全面的教程,包含了更多实践指导和最佳实践。 总的来说,log4j为Java开发者提供了一套强大且灵活的日志管理系统,通过合理的配置和使用,可以有效地提升开发效率和维护...

    log4net组件 用于日志管理

    **四、最佳实践** 1. **日志设计**:合理规划日志结构,避免过多的DEBUG日志影响生产环境,ERROR和FATAL日志应包含足够的信息以定位问题。 2. **日志策略**:根据业务需求制定日志保留策略,如定期归档、按大小...

    log4net-1.2.10

    五、最佳实践 1. **模块化日志**:根据模块或功能划分Logger,便于定位问题。 2. **合理配置日志级别**:避免过多的日志信息影响性能,同时确保关键信息不被遗漏。 3. **使用PatternLayout**:自定义输出格式,提高...

    SpringBoot整合log4j

    7. **日志管理最佳实践** - 日志应分为不同的级别,以便在需要时过滤不重要的信息。 - 保持日志文件大小和数量的控制,避免占用过多磁盘空间。 - 对敏感信息进行脱敏处理,确保数据安全。 - 使用日志收集和分析...

    使用log4net进行操作记录

    至于日志的使用,我们应当遵循一些最佳实践,如: 1. **适度使用日志级别**:DEBUG用于调试,INFO记录常规信息,WARN表示潜在问题,ERROR和FATAL用于严重错误。 2. **避免在日志中泄露敏感信息**:不要记录用户密码...

    log4j所需的jar包

    6. **最佳实践**:在大型项目中,日志管理是一个关键部分。良好的日志策略可以帮助快速定位问题,避免系统故障。应根据需求设置适当的日志级别,避免过多的日志信息影响性能。同时,考虑使用日志归档和日志分析工具...

    12个最重要的J2EE最佳实践

    合理使用异常处理框架,如Java SE的Exception Handling API,并结合日志框架如Log4j,可以提供丰富的错误报告和系统监控能力。 #### 5. 安全性设计 安全性不应被视为事后考量,而是J2EE开发的核心组成部分。应用...

    log4j-tutorial-en.pdf

    本教程旨在帮助读者理解如何有效地使用 log4j,包括其基本配置、高级功能以及最佳实践。 #### 二、设置与配置 log4j #### ##### 2.1 基本配置 ##### - **下载与安装**:首先需要从官方网站...

    Laravel开发-laravel-exception-logger

    6. **最佳实践**: - 在生产环境中,应启用详细的日志记录以便于排查问题,而在开发环境中,可以选择更友好的错误显示方式,如`Whoops`错误处理器。 - 异常处理不仅限于记录,还应考虑如何优雅地处理错误,例如...

    log4net个人学习示例 vs2010

    2. **log4net使用手册.doc**:这份手册应该提供了log4net的官方文档,包括API参考、配置示例和最佳实践。 3. **log4net使用文档_配置说明.doc**:可能进一步解释了配置文件中的各个元素和选项,帮助理解并定制log4...

    exception 需要解决的问题

    为了有效解决异常,开发者需要遵循一些最佳实践: 1. 使用具体异常:避免使用通用的Exception类,而是尽可能抛出具有业务含义的异常。 2. 不要忽视异常:捕获异常后必须进行处理,即使只是记录下来,避免异常被默默...

    log4net dll组件

    5. **最佳实践** - 日志级别应根据实际需要合理设置,避免过度记录导致日志文件过大。 - 应为不同的模块或类创建独立的Logger,以便更好地追踪问题。 - 在生产环境中,通常将日志级别设为WARN或ERROR,只记录异常...

    基于springboot的web项目最佳实践+源代码+文档说明

    # 基于springboot的web项目最佳实践 + [web](#web) + [单元测试](#test) + [actuator应用监控](#actuator) + [lombok](#lombok) + [baseEntity](#baseEntity) + [统一响应返回值](#result) + [异常](#exception) + ...

    log4j日志文件配置

    这通常不是最佳实践,因为日志记录应主要在后端代码中进行,以保持良好的分离关注原则。 总的来说,正确配置并有效利用log4j可以帮助我们提升开发效率,便于问题排查,同时也有助于监控应用的健康状况。在JSP项目中...

    log4j所需jar

    7. **最佳实践** - 选择适当的日志级别,避免过度日志导致性能下降。 - 使用日志管理工具(如ELK Stack或Graylog)收集、存储和分析日志。 - 对敏感信息进行加密或脱敏处理,保护用户隐私。 - 定期更新日志库,...

Global site tag (gtag.js) - Google Analytics