Log4j学习
1. Log4j
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
2. Log4j相关jar包
百度lo4j官网进行下载
3. Log4j 配置文件 – log4j.properties
#配置输出级别,输出目的地
log4j.rootCategory=DEBUG, CONSOLE ,LOGFILE
#配置输出到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#配置信息输出格式
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n
#配置输出到文件
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
#日志文件名(地址路径)
log4j.appender.LOGFILE.File=axis.log
#是否追加
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n
-
-
日志输出级别,共有5级
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7 -
日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) -
日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4.Log4j的使用
public class ProviderMapperTest {
public static void main(String[] args) throws IOException {
Logger logger=Logger.getLogger(ProviderMapperTest.class);
String resource = "mybatis-config.xml";
// 获取mybatis-config.xml文件的输入流
InputStream is = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象,此对象可以完成对配置文件的读取
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
int count=0;
SqlSession sqlSession=null;
sqlSession= factory.openSession();
//MyBatis通过mapper文件的namespace和子元素的id来找到对应的SQL,从而执行查询操作
count=sqlSession.selectOne("com.smbms.dao.provider.ProviderMapper.count");
logger.debug("ProviderTest count---> "+count);
//关闭SqlSession对象
sqlSession.close();
}
}