http://zengxiantao.iteye.com/blog/1881706

1.环境配置:到网上下载log4j-1.2.17.jar包!完后 添加到 项目的build path 中即可!

2.在eclipse测试代码的根目录创建一个名为Log4j.xml 文件,

xml 的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="fileAppender" class="org.apache.log4j.FileAppender">
<param name="Threshold" value="INFO"/>
<param name="File" value="logfile.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="fileAppender"/>
</root>
</log4j:configuration>

log4j.properties

log4j.rootLogger=INFO, stdout, fileout
log4j.logger.TestProject=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l %c : %m%n
log4j.appender.fileout=org.apache.log4j.FileAppender
log4j.appender.fileout.File=c:/test.log
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l %c : %m%n

Log类

 mport java.io.File;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; public class Log { private static Logger logger; private static String filePath = "config/log4j.properties"; private static boolean flag = false; private static synchronized void getPropertyFile() {
logger = Logger.getLogger("TestProject");
PropertyConfigurator.configure(new File(filePath).getAbsolutePath());
flag = true;
} private static void getFlag() {
if (flag == false)
Log.getPropertyFile();
} public static void logInfo(String message) {
Log.getFlag();
logger.info(message);
} public static void logError(String message) {
Log.getFlag();
logger.error(message);
} public static void logWarn(String message) {
Log.getFlag();
logger.warn(message);
} }

3.创建一个工具类 Log ;

package cn.gloryroad;

import org.apache.log4j.Logger;

public class Log {

    private static Logger Log=Logger.getLogger(Log.class.getName());
public static void startTextCase(String sTextCaseName){
Log.info("-----------------------------------------------------------------------------------------");
Log.info("***********************************"+sTextCaseName+"*************************************");
} public static void endTestCase(String sTextCaseName ){ System.out.println("****************测试用例结束******************************");
System.out.println("----------------------------------------------------------"); System.out.println(); }
public static void info(String message){
Log.info(message);
} //定义个warn方法 打印 warn级别的信息 ;
public static void warn(String message){
Log.warn(message); }
//定义个 error 方法 打印自定义的错误信息 ;
public static void error(String message){
Log.error(message); }
//fatal(重大的 致命的) 定义一个fatal 方法 ,打印重大级别的信息 ;
public static void fatal(String message){
Log.fatal(message); }
//定义一个debug方法打印自定义的 debug信息 !
public static void debug(String message){ Log.debug(message); } }

4.测试代码

package scr.comm.testComm;

import org.apache.log4j.xml.DOMConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver; import cn.gloryroad.Log; import scr.comm.OpenBrowserInfo; public class TestComm { public static void main(String[] args) {
DOMConfigurator.configure("Log4j.xml");
String url="http://www.sogou.com/";
OpenBrowserInfo openinfo =new OpenBrowserInfo() ;
openinfo.SystemSetProperty();
WebDriver dr =new FirefoxDriver();
Log.startTextCase("打开搜狗浏览器");
dr.navigate().to(url);
Log.info("点击搜索按钮!");
dr.findElement(By.id("stb")).click();
Log.info("close current borwser!");
dr.quit();
Log.endTestCase("souguo"); } }

5.代码执行完毕后会在workspace下产生一个文件filelog.log

使用Log4在测试过程中打印执行日志 及配置log4j.properties!的更多相关文章

  1. 2.9 log4j 在测试过程中打印执行日志

    Apache Log4j配置说明/log4j的分层打印    http://blog.csdn.net/zzy7075/article/details/53763728

  2. Selenium WebDriver Log4j打印执行日志

    在自动化测试脚本的执行过程中,使用log4j在日志文件中打印执行日志,用于监控和后续调试脚本. Log4j.xml 文件 <log4j:configuration xmlns:log4j=&qu ...

  3. 【他山之石】mybatis打印sql日志 相关配置

    背景:mybatis的sql日志打印对我来说一直比较迷,哪怕看过网上很多博客后还是这样,这两天刚好又遇到了问题,要查sql不得已又来查阅,这次终于搞定了. mybatis是有提供日志功能支持的,目前支 ...

  4. django中邮件、日志的配置

    邮件的发送及配置 # 配置邮件 EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com EMAIL_PORT ...

  5. log4j 配置日志输出(log4j.properties)

    轉: https://blog.csdn.net/qq_29166327/article/details/80467593 一.入门log4j实例 1.1 下载解压log4j.jar(地址:http: ...

  6. springMVC项目中配置log4j.properties路径

    log4j.properties不打到war包中,单独写到一个存放配置文件的文件夹中,在容器中将该文件夹放入classpath,在web.xml中可以如下配置: <context-param&g ...

  7. 在android中使用logback-android日志框架配置 slf4j + logback

    为什么使用 slf4j + logback logbak定位于log4j的替代者,logback同样支持slf4j,方便被替换.在Android平台上,我在使用log4中遇到tag混乱的问题.相比lo ...

  8. IDEA中 mybatis-config、applicationContext.xml、log4j.properties、SpringMVC等文件没有图标标识符号,不是一个xml文件

    1. 举例说明 mybatis-config.xml文件不显示图标,识别不出该xml文件 2. 解决办法 1)先点击 File -> Settings-,然后贴入下面代码 (2) 具体操作如下图 ...

  9. java中关于log日志

    博:http://zhw2527.iteye.com/blog/1006302 http://zhw2527.iteye.com/blog/1099658 在项目开发中,记录错误日志是一个很有必要功能 ...

随机推荐

  1. jenkins + ansible + docker 代码集成发布

    一.环境搭建 1. 安装Java 配java_home, /etc/profile 2.安装Jenkins 下载war包,用 Java -jar  Jenkins.war或者  把war包放tomca ...

  2. 流程控制(if、while、for)

    流程控制 一.if判断 # 1.语法一if 条件:#条件成立时执行的子代码块` 代码1 代码2 代码3# 示例:sex='female'age=18is_beautiful=Trueif sex == ...

  3. 几个并发的术语解释——QPS,TPS,PV

    从英文全称翻译出字面意思就OK啦!  PV=page view TPS=transactions per second QPS=queries per second RPS=requests per ...

  4. flex Datagrid checkbox

    <?xml version="1.0" encoding="utf-8"?><!-- http://blog.flexexamples.com ...

  5. 安装虚拟机及学习linux系统 20155222卢梓杰

    安装虚拟机及学习linux系统 20155222卢梓杰 首先按照要求下载virtualbox,没有遇到问题. 接下来新建一个虚拟机,按照要求应当安装乌班图64,这里只有32位的.在网上搜寻了许久,终于 ...

  6. TCP的三次握手和四次分手

    TCP的三次握手 图解:     • 第一次握手:客户端发送syn包到服务器,并进入syn_send状态,等待服务器进行确认: • 第二次握手:服务器收到客户端的syn包,必须确认客户的SYN,同时自 ...

  7. Python中的装饰器的使用及固定模式

    装饰器的使用: 在不想修改函数的调用方式,但是想给函数添加内容的功能的时候使用     为什么使用装饰器: 软件实体应该是可扩展,而不可修改的.也就是说,对扩展是开放的,而对修改是封闭的. 因此,引出 ...

  8. Spine with Unity Mecanim

    前言 最近这两天刚刚接触Spine,研究了一下Unity Mecanim Animator如何控制Spine,在此分享记录一下,如有不当之处,请留言指出,欢迎讨论. Unity & Spine ...

  9. JavaScript指定断点操作

    什么是断点操作(Breakpoint action) 做前端开发的小伙伴,或许对这个断点操作不是很熟悉.不过你要是问其他语言(比如C,C++ ,C #等)的开发者,他们应该都挺熟悉断点操作,这种断点操 ...

  10. phpcms v9如何给父级单页栏目添加内容

    对于phpcms单页的调用相信大家都应该没问题,那么如果我们在后台添加的单页有二层甚至更多的时候,这样在管理内容上是没有给父级栏目添加内容这一功能的!那么我们该怎么实现这个功能并调用呢? 首先我们要修 ...