Java 标准日志工具 Log4j 的使用(附源代码)
Java 标准日志工具 Log4j 的使用(附源代码)
源代码下载
Log4j 是事实上的 Java 标准日志工具。会不会用 Log4j 在一定程度上可以说是衡量一个开发人员是否是一位合格的
Java 程序员的标准。如果你是一名 Java 程序员,如果你还不会用
Log4j,那你真的很有必要读一下这篇文章了。很多朋友反映想写程序日志,但是却不知道怎么把日志写到日志文件里,而且 Java
这方面的资料似乎不多。如《如何写log4j.xml日志配置文件》
所述。本文详细介绍了如何在项目中使用 Log4j 的步骤,并附加了一个例子性质的代码。
Why Log4j?
有的朋友喜欢用 System.out.println(String msg); 语句来调试代码。这个确实是一个很好的调试工具。但是随着项目的结束,或者问题的解决,这些语句需要我们一个个地揪出来手工删除?《如何一次性删除所有的system.out.println语句
》,这个帖子里的这位网友就遇到了这样一个问题。
全部都删除干净,问题又来了:如果以后又出现问题了该怎么办呢?难道再次添加,问题解决后再次查找到删除?
使用 Log4j 就可以很好地解决上面的问题和矛盾。Log4j 有一个日志级别,用来控制是否进行日志记录。其由低到高的级别如下:
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
将日志进行分级的目的就是在于可以灵活配置。比如说如果日志级别限定于 DEBUG,那么包括 DEBUG 在内的,INFO、WARN、ERROR、FATAL、OFF 都会进行日志记录;而如果级别定义为 INFO,那么 INFO 以下的级别,像 DEBUG 的日志就不会记录。比如如下代码:
Logger log = LogManager.getLogger(HelloWorld.class);
log.info("info通过 class 对象来获取 logger 对象");
log.debug("debug通过 class 对象来获取 logger 对象");
log.warn("warn通过 class 对象来获取 logger 对象");
如果你的 Log4j 定义为输出到控制台,日志级别定义为 INFO,那么执行到上面语句块,控制台会输出以下日志信息:
18
相关文档:
1 聚合
只要类中结合了对象的实例,无论个数多少都存在 聚合的关系,
聚合是关联的一种特殊形式,它意味着一种整体 / 部分( whole/part )的关系。
白色菱形直线代表聚合的关系 表示Whole 使用了Part
类中访问控制
+代表 public的属性 ......
input stream Out stream
DataInputStream DataIOutStream
BufferedInputStream BufferedOutStream
LineNumberInputStream PrintStream
PushbackInputStream
以字节为导
向的 stream
----------(无 ......
1)正常情况下我们可以通过类实例化一个对象,那么通过反射实际上就可以通过一个对象得到此类完整的包.类名称
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
......
TCP通过 ServerSocket 和 Socket 来实现传输
UDP主要通过 DatagramSocket 和 DatagramPacket 来完成传输
直接上代码
服务器端:
public class UdpServer
{
private DatagramSocket server;
private DatagramPacket packet;
private byte[] b;
private String str;
public UdpServer()
{
Init();
} ......
一,网络编程中两个主要的问题
一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。
在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。
而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对 ......