Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
异常-我应该更喜欢日志库而不是java.util.logging吗?_Java_Logging_Exception Handling_Coding Style - Fatal编程技术网

异常-我应该更喜欢日志库而不是java.util.logging吗?

异常-我应该更喜欢日志库而不是java.util.logging吗?,java,logging,exception-handling,coding-style,Java,Logging,Exception Handling,Coding Style,事实上,大多数开始java编程的人只是将异常处理留待以后处理。作为e.printStackTrace()乱扔我的代码已经让我烦恼太久了,读了这篇内容丰富的文章后,我意识到正确的做法显然是重新引用异常并在尽可能高的级别上登录(至少对于检查过的异常——这是我目前关心的事情)。所以我必须看看Logger(我想这是一个完整的主题,意思是我应该按照类、方法创建它们,我应该包装它们等等),但首先要做的是:我应该使用一些专门的lib(比如apache的log4j),或者更好的包装器(比如SLF4J),还是继续

事实上,大多数开始java编程的人只是将异常处理留待以后处理。作为
e.printStackTrace()乱扔我的代码已经让我烦恼太久了,读了这篇内容丰富的文章后,我意识到正确的做法显然是重新引用异常并在尽可能高的级别上登录(至少对于检查过的异常——这是我目前关心的事情)。所以我必须看看Logger(我想这是一个完整的主题,意思是我应该按照类、方法创建它们,我应该包装它们等等),但首先要做的是:我应该使用一些专门的lib(比如apache的log4j),或者更好的包装器(比如SLF4J),还是继续使用java.util.logging?你们在用什么?为什么


谢谢

在我(许多其他人)看来,您绝对应该使用第三方日志解决方案——java.util.logging有很多“问题”。Log4J很方便,并且被广泛使用,但是SLF4J更好。更好的是,SLF4J实现是由编写Log4J的同一个人编写的,因此它是当前推荐的解决方案,适用于那些使用Log4J的人。

您所说的“重新刷新”是什么意思?检查过的异常应该包装成未检查过的异常,然后抛出。至于日志记录,SLF4J+Logback将是当今的首选。当您使用一些有自己日志记录的库时,这一点尤其重要,通常是针对Apache Commons日志记录或Log4j。使用SLF4J,您将能够最优雅地将所有这些API聚合到一个单一的日志后端。@Marko:关于重试实践-是的,实际上我的意思是在我创建的某个异常中封装了重试-请参阅引用的文章。我最感兴趣的是这个问题的记录者部分,尽管在这个问题中,为了将来的参考,发布你期望每个潜在回答者点击和翻页的链接是不可接受的做法。在你的问题中发表相关观点。另一个好的做法是,不要用三句话来谈论不是你的问题的话题。这不是你的个人博客空间。