Ren*_*ani 266 java logging java.util.logging
我想在我的程序中使用日志.我听说过java.util.logging,但我不知道如何开始.
是否有任何关于日志记录的例子?我如何在自己的程序中使用日志记录?
小智 326
java.util.logging
使您不必再使用您的应用程序再添加一个jar文件,并且它适用于良好的Formatter.
一般来说,在每个班级的顶部,您应该:
private static final Logger LOGGER = Logger.getLogger( ClassName.class.getName() );
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用Logger类的各种工具.
使用Level.FINE
任何东西是调试在执行流程的最高级别:
LOGGER.log( Level.FINE, "processing {0} entries in loop", list.size() );
Run Code Online (Sandbox Code Playgroud)
使用Level.FINER
/ Level.FINEST
在循环内部以及在调试基本流问题时可能并不总是需要看到那么多细节的地方:
LOGGER.log( Level.FINER, "processing[{0}]: {1}", new Object[]{ i, list.get(i) } );
Run Code Online (Sandbox Code Playgroud)
使用日志工具的参数化版本来防止GC必须跟上大量的字符串连接垃圾.Object[]
如上所述便宜,通常在堆栈分配上.
通过异常处理,始终记录完整的异常详细信息:
try {
...something that can throw an ignorable exception
} catch( Exception ex ) {
LOGGER.log( Level.SEVERE, ex.toString(), ex );
}
Run Code Online (Sandbox Code Playgroud)
我总是ex.toString()
在这里传递消息,因为当我在日志文件中" grep -n
"for" Exception
"时,我也可以看到消息.否则,它将在堆栈转储生成的下一行输出上,并且您必须具有更高级的RegEx以匹配该行,这通常会获得比您需要查看的更多输出.
han*_*noo 66
应该像这样声明记录器:
private final static Logger LOGGER = Logger.getLogger(MyClass.class.getName());
Run Code Online (Sandbox Code Playgroud)
因此,如果您重构您的类名,则遵循.
我在这里写了一篇关于java logger的文章.
Ank*_*kit 50
有许多示例,也有不同类型的日志记录.看一下java.util.logging包.
示例代码:
import java.util.logging.Logger;
public class Main {
private static Logger LOGGER = Logger.getLogger("InfoLogging");
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
Run Code Online (Sandbox Code Playgroud)
没有硬编码类名:
import java.util.logging.Logger;
public class Main {
private static final Logger LOGGER = Logger.getLogger(
Thread.currentThread().getStackTrace()[0].getClassName() );
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
Run Code Online (Sandbox Code Playgroud)
bco*_*ody 22
SLF4J是比Apache Commons Logging(ACL)更好的日志记录.它具有与其他日志框架的桥梁,直接调用ACL,Log4J或Java Util Logging通过SLF4J,因此您可以根据需要将所有输出定向到一个日志文件,只需一个日志配置文件.为什么您的应用程序使用多个日志记录框架?因为您使用的第三方库,特别是较旧的库,可能会这样做.
SLF4J支持各种日志记录实现.它可以将所有内容输出到标准输出,使用Log4J或Logback(推荐使用Log4J).
归档时间: |
|
查看次数: |
409162 次 |
最近记录: |