本文是[链接]的一个章节,该系列文章将介绍 [链接] 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 日志记录 Solo 使用 log4j 作为日志组件,Latke 框架通过 slf4j ..

Solo 错误处理

本贴最后更新于 318 天前,其中的信息可能已经时移俗易

本文是《Solo 从设计到实现》的一个章节,该系列文章将介绍 Solo 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 ❤️

日志记录

Solo 使用 log4j 作为日志组件,Latke 框架通过 slf4j 对日志接口进行了简单包装,Solo 中所有记录日志的地方都是用的 Lakte 框架提供的日志接口。

值得一提的是,如果你想显示执行的 SQL,需要在 log4j.props 中配置:

log4j.logger.org.b3log.latke.repository.jdbc.util=TRACE

错误页跳转

Latke 框架处理错误页面时使用的是 Servlet 容器的机制,所以需要在 web.xml 中配置 <error-page> 元素:

<error-page>
    <error-code>404</error-code>
    <location>/error/404</location>
</error-page>
<error-page>
    <error-code>401</error-code>
    <location>/error/401</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/error/403</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error/500</location>
</error-page>

这样在代码中需要跳转错误页面的地方就直接通过 Servlet 接口 Response#sendError 返回即可:

response.sendError(HttpServletResponse.SC_NOT_FOUND);
...
response.sendError(HttpServletResponse.SC_FORBIDDEN);

启动阶段报错

在启动阶段发生一些致命问题将导致退出进程,比如:

进程退出前会记录详细的日志,根据日志可以定位问题。另外,我们没有对进程退出码进行细分,统一为 -1。需要注意的是,我们用了 System#exit 来退出,这意味着整个容器进程也会被退出。


回到全文目录:《Solo 从设计到实现》

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    712 引用 • 5414 回帖 • 698 关注
  • 设计
    87 引用 • 550 回帖 • 1 关注
  • 文档
    51 引用 • 949 回帖 • 1 关注
回帖   
请输入回帖内容...