Java打印日志类

上一篇 / 下一篇  2017-04-26 13:45:57 / 个人分类:自动化测试

   用Appium做自动化测试,目前是用到哪儿学到哪儿,对Java的常用类和方法还不了解,就一步一步地来学习,测试过程中要打印日志,测试数据是用Excel表记录,则要用到读取文件等类及相关方法。
  Java中打印日志的类也蛮多的,百度一下就有jxl和POI这两个组件支持,还有Java自己的Logger类,学习的第一步,先学会Java自带的Logger类,再扩展学习其他的实现方法。
   import java.io.IOException;
   import java.util.Date;
   import java.util.logging.FileHander;
   import java.util.logging.Formatter;
   import java.util.logging.Level;
   import java.util.logging.LogRecore;
   import java.util.logging.Logger;

   public class PrintText{
public static void main(String args[]){
//新建一个叫test的Logger
Logger log=Logger.getLogger("test");
//设置打印的级别,所有级别的都打印,如果设置为Level.INFO,则打印的是INFO级别的信息,
log.setLevel(Level.All);
//创建一个文件处理器,用于把对应级别的日志输出到对应路径文件中,文件名中的%g为循环日志记录生成的数值,从0开始
FileHandler fhd=new FileHandler("D:\\test%g.txt");
fhd.setLevel(Level.All);
fhd.setFormatter(new LogFormatter());

log.addHandler(fhd);
log.info("Print the log info to test");
}
}

      class LogFormatter extends Formatter{
@override
public String format(LogRecord record){
Date date=new Date();
String sDate=date.toString();
//返回设定的打印格式
//注意:打印到记事本中,单独的\n换行不起作用,需要用\r\n组合才起作用。
returen "["+sDate+"]"+"["+record.getLevel()+"]"+"\r\n"+record.getMessage()+"\r\n"
}
}

FileHander 文件处理器,主要用于打印输出到文件中,其配置的参数,可能常用到的,
         
配置属性描述默认值
java.util.logging.FileHandler.level处理器的级别 默认是Level.AlL
java.util.logging.FileHandler.append控制器应该追加到一个已经存在的文件尾部;
还是应该为每个运行的程序打开一个新文件。
默认是false
java.util.logging.FileHandler.limit在打开另一个文件之前允许写入一个文件的近似最大字节数在FileHandler类中为0(表示无限制);在默认的日志管理器配置文件中为50000
java.util.logging.FileHandler.pattern日志文件名的模式。参看下个表2%hjava%u.log
java.util.logging.FileHandler.count在循环序列中的日志记录数量1不循环
java.util.logging.FileHandler.filter使用的过滤器类没有使用过滤器
java.util.logging.FileHandler.encoding使用字符编码平台的编码
java.util.logging.FileHandler.formatter记录格式器java.util.logging.XMLFormatter

表2 日志记录文件模式变量:

变量描述
%h系统属性user.home的值
%t系统临时目录
%u用于解决冲突的唯一编号
%g为循环日志记录生成的数值。(当使用循环功能且模式不包括%g时,使用后缀%g
%%%字符


ConsoleHandler是控制台日志记录器,主要打印控制台的日志信息。




TAG: java

 

评分:0

我来说两句

Open Toolbar