Log4j2打印执⾏⽇志!代码逐句详解
⽂章⽬录
11使⽤Log4j2打印执⾏⽇志
Log4j2是⽇志操作包
三个重要组件:⽇志的优先级、⽇志信息的输出⽬的地、⽇志信息的输出格式。
1.Log4j2功能
1.可以指定⽇志信息输出的⽬的地
2.控制每⼀条⽇志的输出格式
3.定义⽇志信息的级别
PS:这些功能通过⼀个配置⽂件灵活进⾏配置。
###2.demo1 Logger的简化使⽤,这种只输出到控制台!
/
/demo1
//⽤⾯向对象的思想思考问题
public class Demo1 {
//1.获取⽇志记录器
private static final Logger Logger();
String msg="hello";
@Test
public void test1(){
//记录debug级别的信息,般⽤于细粒度级别上,对调试应⽤程序⾮常有帮助。
LOGGER.debug("debug:"+msg);
/
/记录info级别的信息,info ⼀般和在粗粒度级别上,强调应⽤程序的运⾏全程。
LOGGER.info("info:"+msg);
//warn 表明会出现潜在的错误情形。
LOGGER.warn("warn:"+msg);
//记录error级别的信息,error 指出虽然发⽣错误事件,但仍然不影响系统的继续运⾏。
<("11:"+msg);
//指出每个严重的错误事件将会导致应⽤程序的退出。
LOGGER.fatal("fatal:"+msg);
}
}
//Log4j⽐如你不想只在控制台查看测试信息,以前可以⽤InputStream输出到⽂件中,但是这个Log4J帮实现了,现在直接就实例化就⾏//Log4j 就是⽇志的操作包。
//log4j.properties是第⼀代版本的,现在不推荐⽤。
###3.题外话 基于properties配置⽂件的BaseTest 知识点:Properties 类
//BaseTest
//可以判断是⽕狐浏览器还是⾕歌的
//并且把打开浏览器的类型保存到⽇志中
public class BaseTest {
public WebDriver driver;
@BeforeClass
public void initBrowser()throws IOException {
//ReadProperties是⾃⼰创建的类,详解在下⾯。
//通过ReadProperties的getValue的⽅法获得browser的值。
properties文件用什么打开String browser_Value("browser");
//判断配置⽂件的browser是不是⽕狐。
//这⾥是为了便于修改,在配置⽂件中就可以实现⽕狐或者⾕歌浏览器的转换。
if(browser_type.equalsIgnoreCase("firefox")){
//gecko_driver=d:\\demo\\
System.setProperty("ko.driver",Value("gecko_driver"));
//firefox=C:\\Program Files\\Mozilla Firefox\\
System.setProperty("webdriver.firefox.bin",Value("firefox"));
driver=new FirefoxDriver();
Log.info("打开ff浏览器");
登录界面英文单词}else if(browser_type.equalsIgnoreCase("chrome")){
/
/equalsIgnoreCase与equals的区别:前者不考虑⼤⼩写。
System.setProperty("webdriver.chrome.driver",
driver=new ChromeDriver();
Log.info("打开chrome浏览器");
}
}
//在这个Test⽅法中实现了对报错⽇志的记录。
@Test
public void testMymovie(){
try{
/
/通过ReadProperties这个类的getValue获取键值对左侧名为base_url⽅法
<(Value("base_url"));
driver.findElement(By.name("username")).sendKeys("admin");
}catch(Exception e){
//如果报错,输出error级别的报错信息。
//Log类的error⽅法。
<(e.getMessage());
select多选下拉框}
}
}
4.Properties 类
Properties 类位于 java.util.Properties ,是Java 语⾔的配置⽂件所使⽤的类 ,它使⽤键值结构存储数据, 属性列表中每个键及其对应值都是⼀个字符串。
这个类的常⽤⽅法
load:从字节输⼊流中读取键值对。利⽤InputStream对象,实现对⽂件的链接,
什么是键值对?
例如:filename = 。
//常⽤⽅法⼩部分源代码
public void load(InputStream inStream);
public class ReadProperties {
//这个是与src并列的就是在项⽬⽂件下设置的⽂件夹conf,conf/config.properties就是该⽂件。
public static final String filePath="conf/config.properties";
public static String getValue(String key)throws IOException {
//是Java 语⾔的配置⽂件所使⽤的类
Properties prop=new Properties();
//把config.properties引⼊进来。这⾥⽤InputStream是因为load⽅法是从InputStream对象中读取信息。
FileInputStream fis=new FileInputStream(filePath);
//实现了⽂件的引⼊
prop.load(fis);
//关闭⽂件输⼊流
fis.close();
//java.Property(String key,String defaultValue)
//getProperty⽅法。
//在属性列表中指定键的属性的⽅法搜索
Property(key);
}
}
conf/config.properties 根据⾃⼰的⽂件路径输⼊
browser=chrome
gecko_driver=d:\\demo\\
chrome_driver=d:\\demo\\
firefox=C:\\Program Files\\Mozilla Firefox\\
base_url=localhost:8032/mymovie/
screen=d:\\demo\\screen
5.Log类⾥的Logger 测试开发的好习惯
注意控制台输出的字体是红⾊的
//log的好处
//我认为可以在⽇志⽂件中添加信息。gitlab使用手册
//直接调⽤Log
public class Log {
private static final Logger Logger(); public static void trace(String msg){
}
public static void debug(String msg){
LOGGER.debug(msg);
}
public static void info(String msg){
LOGGER.info(msg);
}
public static void warn(String msg){
LOGGER.warn(msg);
}
public static void error(String msg){
<(msg);
}
深圳小程序外包开发public static void fatal(String msg){
LOGGER.fatal(msg);
}
}
xml⽂件放在src下⾯就可以了;
l 详解
您也可以不使⽤配置⽂件,但是配置⽂件更加灵活
可以输出到控制台,也可以输出到⽂件。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<!-- 定义appenders-->
<Appenders>
<!-- 以下定义输出到控制台的配置-->
<Console name="Console"target="SYSTEM_OUT">
<!-- -->
<!--PatternLayout可以灵活地指定布局模式 -->
<!-- %p 输出优先级 -->
<!-- %d 输出⽇志时间点的⽇期-->
<!-- %c 输出所属的类⽬,通常就是所在类的全名-->
<!-- %m 输出代码中的指定⽇期-->
<!-- %n 换⾏符-->
<PatternLayout pattern="[%-5p] %d %c - %m%n"/>
</Console>
<!-- 输出打印到⽂件-->
<File name="File"fileName="dist/my.log">
<PatternLayout pattern="[%-5p] %d %c - %m%n"/>
</File>
</Appenders>
<Loggers>
<!--配置根logger,level是⽇志记录的优先级 -->
urlpattern 匹配多个<!--建议只使⽤四个级别优先级从⾼到低分别是ERROR、WARN、INFO、DEBUG --> <!-- -->
<Root level="INFO">
<AppenderRef ref="File"/>
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
gers>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论