maven配置log4j

1下载安装jar包

去maven 仓库    https://mvnrepository.com/artifact/log4j

maven配置log4j_第1张图片

maven配置log4j_第2张图片

maven配置log4j_第3张图片

直接拿最新的版本,拿配置信息,黏贴到pom.xml就可以了


		
			log4j
			log4j
			1.2.17
		

2然后新建log4j配置

在项目的classpath下或者resource包下(maven项目)新建一个log4j.properties文件,初始项目配置如下参数就足够了

maven配置log4j_第4张图片

黏贴下面的内容到log4j.properties

 ### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Encoding=UTF8
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  - [ %p ]  %l %c %t - %m %n 
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Encoding=UTF8
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  - [ %p ]  %l %c %t - %m %n

修改log文件路径

 

maven配置log4j_第5张图片

copy项目位置

修改以下两个属性

log4j.appender.D.File = D:\\ssh\\TestProject\\TestProject\\log.log

log4j.appender.E.File =D:\\ssh\\TestProject\\TestProject\\error.log

然后手动创建2个文件(log.log  和  error.log)

maven配置log4j_第6张图片

maven配置log4j_第7张图片

然后在代码中使用

package seleniumTest;

import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;

import com.google.common.io.Files;

import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import Help.HaveOrNo;
import Help.yanzheng.Captcha;
import Help.yanzheng.DamaUtil;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.imageio.ImageIO;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.Point;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Listeners;
import org.testng.annotations.AfterTest;

@Listeners({ listener.class })
public class TestNgLogin {
//使用日志对象
	private static Logger logger = Logger.getLogger(TestNgLogin.class);

	WebDriver driver;
	WebDriverWait wait;
	HaveOrNo checkElement = new HaveOrNo();

	@BeforeMethod
	public void beforeMethod() {

		System.out.println("this is beforeMethod");
	}

	@BeforeClass
	public void beforeClass() {
//读取配置文件
		PropertyConfigurator.configure("log4j.properties");
		
		System.setProperty("webdriver.chrome.driver",
				"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
		driver = new ChromeDriver();
		driver.get("https://www.imooc.com");
		driver.manage().window().maximize();
		System.out.println("this is beforeClass");
		wait = new WebDriverWait(driver, 3000);
	}

	@Test
	public void loginAndEdiPosition() throws InterruptedException {
//设置打印内容
		logger.debug("开始修改地址");
		logger.error("------------------------error");
        Assert.fail("假装失败了");
}
}

输出错误结果

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
%r 输出自应用启动到输出该log信息耗费的毫秒数 
%c 输出所属的类目,通常就是所在类的全名 
%t 输出产生该日志事件的线程名 
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n” 
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

你可能感兴趣的:(maven,log4j,java基础)