用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是控制台日志记录器,主要打印控制台的日志信息。