java异常的处理方式(学习廖雪峰的JAVA教程---异常处理(使用JDK Logging 日志调试))java教程 / Java异常处理与调试技巧...

wufei123 发布于 2024-02-19 阅读(72)

使用JDK Logging阅读: 9048在编写程序的过程中,发现程序运行结果与预期不符,怎么办?当然是用System.out.println()打印出执行过程中的某些变量,观察每一步的结果与代码逻辑是否符合,然后有针对性地修改代码。

代码改好了怎么办?当然是删除没有用的System.out.println()语句了如果改代码又改出问题怎么办?再加上System.out.println()反复这么搞几次,很快大家就发现使用System.out.println()非常麻烦。

怎么办?解决方法是使用日志那什么是日志?日志就是Logging,它的目的是为了取代System.out.println()输出日志,而不是用System.out.println(),有以下几个好处:可以设置输出样式,避免自己每次都写"ERROR: " + var;

可以设置输出级别,禁止某些级别输出例如,只输出错误日志;可以被重定向到文件,这样可以在程序运行结束后查看日志;可以按包名控制日志级别,只输出某些包打的日志;可以……总之就是好处很多啦那如何使用日志?因为Java标准库内置了日志包java.util.logging,我们可以直接用。

先看一个简单的例子:// logging import java.util.logging.Level; import java.util.logging.Logger; public class Hello { public static void main(String[] args) { Logger logger = Logger.getGlobal(); logger.info("start process..."); logger.warning("memory is running out..."); logger.fine("ignored."); logger.severe("process will be terminated..."); } }

运行上述代码,得到类似如下的输出:Mar 02, 2019 6:32:13 PM Hello main INFO: start process... Mar 02, 2019 6:32:13 PM Hello main WARNING: memory is running out... Mar 02, 2019 6:32:13 PM Hello main SEVERE: process will be terminated...

对比可见,使用日志最大的好处是,它自动打印了时间、调用类、调用方法等很多有用的信息再仔细观察发现,4条日志,只打印了3条,logger.fine()没有打印这是因为,日志的输出可以设定级别JDK的Logging定义了7个日志级别,从严重到普通:。

SEVEREWARNINGINFOCONFIGFINEFINERFINEST因为默认级别是INFO,因此,INFO级别以下的日志,不会被打印出来使用日志级别的好处在于,调整级别,就可以屏蔽掉很多调试相关的日志输出。

小结日志是为了替代System.out.println(),可以定义格式,重定向到文件等;日志可以存档,便于追踪问题;日志记录可以按级别分类,便于打开或关闭某些级别;可以根据配置文件调整日志,无需修改代码;

Java标准库提供了java.util.logging来实现日志功能【关键:日志就是Logging,它的目的是为了取代System.out.println()日志的输出可以设定级别JDK的Logging定义了7个日志级别。

Java标准库内置的Logging使用并不是非常广泛。更方便的日志系统我们稍后介绍Logger logger = Logger.getGlobal();】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻29419