package tt;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ParaTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
/**
* 目的: 比较两种方法的速率快慢
* 第一种方法: 单独一个线程串行的向日志文件中写入2048个元素
* 第二种方法: 两个线程并行,一个线程生成2048个元素后,另外一个获取该容器的锁,并写入日志文件。
*/
/**
* case 1:
*/
PThread_1 p1 = new PThread_1();
Thread t1 = new Thread(p1);
long startTime = System.currentTimeMillis();
t1.start();
t1.join();
long endTime = System.currentTimeMillis();
System.out.println("The T1 running time is :" + (endTime - startTime));
/**
* case 2:
*/
PThread_2 p2 = new PThread_2();
PThread_3 p3 = new PThread_3();
Thread t2 = new Thread(p2);
Thread t3 = new Thread(p3);
t2.start();
t2.join();
startTime = System.currentTimeMillis();
t3.start();
t3.join();
endTime = System.currentTimeMillis();
System.out.println("The T3 running time is :"
+ (endTime - startTime));
}
}
class PThread_1 implements Runnable {
public static List<Long> lt = new ArrayList<Long>();
public static final Log pThread_1 = LogFactory.getLog(PThread_1.class);
PThread_1() {
}
@Override
public void run() {
// TODO Auto-generated method stub
while (lt.size() < 2048) {
lt.add(System.currentTimeMillis());
}
for (int i = 0; i < 2048 ; i++) {
pThread_1.info(lt.get(i));
}
lt.clear();
}
}
class PThread_2 implements Runnable {
public static List<Long> lt = new ArrayList<Long>();
PThread_2() {
}
@Override
public void run() {
synchronized (lt) {
while (lt.size() < 2048) {
lt.add(System.currentTimeMillis());
}
// lt.notifyAll();
}
}
}
class PThread_3 implements Runnable {
public static final Log pThread_3 = LogFactory.getLog(PThread_3.class);
PThread_3() {
}
@Override
public void run() {
// TODO Auto-generated method stub
synchronized (PThread_2.lt) {
// try {
// if(PThread_2.lt.size()<2048)
// PThread_2.lt.wait();
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
if (PThread_2.lt.size() >= 2048) {
for (int i = 0; i < PThread_2.lt.size(); i++)
pThread_3.info(PThread_2.lt.get(i));
}
PThread_2.lt.clear();
}
}
}
log4j.properties配置文件
// log4j.rootLogger = [ level ] , appenderName, appenderName, …
//appenderName是输出源的名字,它指定日志信息输出到哪个地方, 如配置控制台输出,:
log4j.rootLogger=WARN, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=(%r ms) [%t] %-5p: %c#%M %x: %m%n
注: 如果上面这段觉得多的话,至少应该有这句:
log4j.rootLogger=WARN
否则会有log4j:WARN No appenders could be found for logger
// 配置自己的pThread_1输出, Java代码中要加入publicLog pThread_1 = LogFactory.getLog(PThread_3.class);
log4j.logger.tt.PThread_1=INFO,p1 //
tt.PThread_1,这里要注明包名, 为tt.PThread_1,见上面Java代码
log4j.appender.p1=org.apache.log4j.FileAppender
log4j.appender.p1.File=D://log4j/pThread_1.log
log4j.appender.p1.layout=org.apache.log4j.PatternLayout
log4j.appender.p1.layout.ConversionPattern=%d %p [%c] - %m%n
// 同上
log4j.logger.tt.PThread_3=INFO,p3
log4j.appender.p3=org.apache.log4j.FileAppender
log4j.appender.p3.File=D://log4j/pThread_3.log
log4j.appender.p3.layout=org.apache.log4j.PatternLayout
log4j.appender.p3.layout.ConversionPattern=%d %p [%c] - %m%n
分享到:
相关推荐
完整的log4j配置文件
log4j配置文件例子,可以让你轻松配置log4j
log4及配置文件 有log4j文件 log4及配置文件 有log4j文件 log4及配置文件 有log4j文件
标准log4j配置文件模板, 可自行下载参照
一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件
log4j中配置日志文件相对路径方法分析 方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${...
Log4J 全能配置文件详细大全。跟踪调试程序 非常方便呀
配置SSH框架时关于Log4j的配置文件
log4j配置文件说明,让你轻松配置日志文件
log4j配置文件以及配置文件说明 包里有一个log4j配置文件 和一个配置详解
log4j.properties配置文件
内包含log4j所依赖的jar包,以及log4j配置文件!!!!
log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档
log4j2配置,文件分割,自动清除等相关配置。
spring log4j配置文件资料 spring log4j配置文件资料 spring log4j配置文件资料
十分宝贵的mybatis配置文件,包含最新的mybatis配置文件,以及mybatis开发文档,Log4j测试开发日志文件
log4j配置文件,可以直接拿来用噢。log4j配置文件,可以直接拿来用噢。
Log4j配置文件解析以及加载自己的配置文件.doc
Spring4.3.7的log4j以及配置文件Spring4.3.7的log4j以及配置文件Spring4.3.7的log4j以及配置文件