1.log4j日志处理
步骤:
1.在项目中引入jar包
2.创建log4j.properties 文件(src)
3.配置日志信息
日志输出级别:
fatal > error > warn > info > debug
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 = logs/log.log
log4j.appender.D.Append = true
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} %l %F %p %m%n
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =logs/error.log
log4j.appender.E.Append = true
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} %l %F %p %m%n
另还需要在类中
package com.mucfc;
import org.apache.log4j.Logger;
/**
*@author linbingwen
*@2015年5月18日9:14:21
*/
public class Test {
private static Logger logger = Logger.getLogger(Test.class);
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println("This is println message.");
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
}
日志文件结果:
控制台结果:
2.集合
集合优点:
优势之一即可动态扩展集合长度,即所包含的成员个数不固定,可以随着不断地添加、移除进行动态空间扩展。
优势之一,可存储不同类型的数据。
Collection ->List , Set 均为接口
由于所有子类都实现了父类的方法,调用方式都一样,作用而一样
List接口主要方法:
public static void main(String[] args) {
List dogs=new ArrayList();
dogs.add("d1");
dogs.add("d2");
dogs.add(3); //没有类型限制
for (Object obj:dogs) {
System.out.println(obj);
}
结果:
1)ArrayList存储扩容机制
ArrayList是数据连续存储,可变数组,可根据下表快速读取数据
list.get(0)
ArrayList,默认开辟10个存储空间,当空间用尽时,会动态扩容,扩容量为:当前长度/2 取整;
================================================
3.泛型集合
因为List可以存各种类型数据,所以很容易出现下面错误
List的get(int index)方法获取元素出错
通过泛型约束了集合类型或者类和接口的类型
public static void main(String[] args) {
List<String> dogs=new ArrayList<String>();
dogs.add("d1");
dogs.add("d2");
dogs.add("d3");
dogs.set(0,"d");
dogs.add(1); //编译出错 ,类型不符
dogs.add(0,"d4");
System.out.println(dogs.get(1));
for (Object obj:dogs) {
System.out.println(obj);
}