Java Logger汇总
来自:http://www.cnblogs.com/echozhjun/archive/2010/01/08/1641970.html
JDK Logger
JDK Logger在java.util.logging包下面,自从JDK1.4就有了,可是因为log4j的存在,这个Logger一直沉默着。Java自带的Logger,级别比Log4j还要详细,但是如果需要自定义日志输出格式,需要自己实现Formatter,有些不方便。
Log4j
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;用户也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,用户能够更加细致地控制日志的生成过程。这些可以通过一个 配置文件来灵活地进行配置,而不需要修改程序代码。
Slf4j
简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
Apache-common-logging
Apache-common-logging是Apache的又一个开放源代码项目,为各种loging APIs提供统一的接口,从而使得用户能够在运行时动态的决定自己希望使用的loging APIs实现。Apache Common-Logging通过动态查找的机制,在程序运行时自动找出真正使用的日志库。Apache Common-Logging使用了ClassLoader寻找和载入底层的日志库,所以在需要多个ClassLoader比如OSGI编程的时候就会出现问题了。
Logback
Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。
Apache commons logging自动查找当前实现Log顺序
1、首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
2、如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其
相关文档:
虽然不觉得在编程时正确判断java类初始化工作先后顺序会是一个挑战,且对于类初始化的认识还只停留在语言特性机制的层面(或许会是一种实现技巧领域的议题),但对于关于初始化这类零散而又细小的知识点,总结还是有价值的 ......
Clone这个方法很鸡肋,原因是因为它是受保护的(protected),其二Clone这个方法是可选的,即有可能类没有提供这个方法。
clone没有调用构造函数,而且如果父类没有实现clone的话,子类永远也不可能正确实现clone.
总之,clone是个很头痛的函数,如果要正确实现,必须考虑到深考贝的情况,否则被克隆出来的对象就不是独立的 ......
Java
虚拟机(JVM)是可运行Java
代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。
一.Java源文件的编译、下载
、解释和执行
Java应用程序的开发 ......
2009年10月31日 星期六 15:32
package Client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.nio.channels.Il ......