由于使用webcollector包,里面的输出实在太多了,自己想要观察的信息有点难找到,所以想使用java的Log日志特点,方便查看自己想要看到的信息。

记得以前看视频学android开发的时候,有这一点。好像是可以在下面的控制台,利用Log的等级和名称,进行过滤,这样就能看到特定的信息了。不过这个好像是eclipse的android开发特有的,普通的eclipse好像没有
平时用的日志好像有java自带的Logging,有apache的log4j,这里我用的是log4j。它们都可以在特定的配置文件中指定配置,包括格式,输出载体等。但是这个好像是全局的配置。

log4j的级别由以下几种,默认情况下只输出>=ERROR的。
trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。

自己实现了一个类,用文件名初始化,然后把指定的消息放入文件里面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;

/**日志记录器,可以写到指定的文件中,写的格式是一行一个消息
* @author Fanny
*
*/
public class MyLogger {

private Logger logger;
public MyLogger(String filename) {
logger = Logger.getLogger(filename);

FileAppender appender = null;

// SimpleLayout layout=new SimpleLayout();
String pattern="%m\r\n";
PatternLayout layout=new PatternLayout(pattern);
try {
appender = new FileAppender(layout , filename);
} catch (Exception e) {
}
logger.addAppender(appender);
}
public void info(String info) {
logger.info(info);
}
public static void main(String[] args) {
MyLogger logger=new MyLogger("log");
logger.info("hell");
logger.info("abc");
}
}

输出的结果如下:

1
2
hell
abc

关于Layout,用SimpleLayout的话,打印到文件里的是INFO -加消息,比如INFO - This is a message。而PatternLayout则可以指定格式,它的用法如下:

符号 意义 例子
%% 显示一个百分号
%t 输出产生该日志事件的线程名
%r 显示从程序启动时到记录该条日志时已经经过的毫秒数
%p 显示该条日志的优先级
%n 当前平台下的换行符
%M 显示调用logger的方法名
%m 显示输出消息
%L 显示调用logger的代码行
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%F 显示调用logger的源文件名
%d 显示日志记录时间,{<日期格式>}使用ISO8601定义的日期格式 %d{yyyy/MM/dd HH:mm:ss,SSS}
%C 列出调用logger的类的全名(包含包路径)


编程语言      Java IO

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!