hibernate comes with a simple logging framework. Here we introduce a powerful logging framework log4j. Baidu Encyclopedia's introduction to log4j is very good. Most of the content below is copied from Baidu Encyclopedia.
Introduction to log4j (Baidu Encyclopedia)
Log4j is Apache An open source project, using Log4j, we can control the destination of log information delivery. Console , documents, GUI Components, even socket servers, NT Event logger, UNIX SyslogDaemon We can also control the output format of each log; by defining the level of each log information, we can control the generation process of the log more carefully. The most interesting thing is that these can be passed through a configuration file To configure flexibly without modifying the application code.
2. log4j configuration
1. Take the blog project as an example.
2. Add the jar package to the project:
3. Add the configuration file log4j.properties to the root directory of the project, as shown above.
log4j.rootLogger=debug,appender1,appender2 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender2=org.apache.log4j.FileAppender log4j.appender.appender2.File=C:/logFile.txt log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout
Here is a description of the configuration (Baidu Encyclopedia)
Log4j. rootLogger = info, appender 1, appender 2: This sentence is to export log information with INFO level to appender 1 and appender 2 destinations. Appnder 1 and appender 2 are defined in the following code and can be named arbitrarily. Grades can be divided into OFF, FATAL, ERROR, WARN, INFO, etc. DEBUG ALL, if you configure OFF, you will not type any information, if you configure OFF INFO This shows only INFO, WARN, ERROR log Information, and DEBUG information will not be displayed, the specific explanation can refer to the third part of the definition of logger in the configuration file.
log4j.appender.appender1=org.apache.log4j.ConsoleAppender: This sentence defines what type of output is called appender1, which can be
log4j.appender.appender2.File=C:/logFile.txt: This sentence defines the output file named appender2 as C:/logFile.txt, which can be modified by itself.
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j configuration information and other, you can refer to Baidu Encyclopedia.
4.log4j uses: to add related statements to the class to output the log:
package com.test.service; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.test.model.Student; import com.test.util.HibernateUtil; public class StudentTest { private SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); // Get Session Factory private Session session; private Logger logger = Logger.getLogger(StudentTest.class); @Before public void setUp() throws Exception { session=sessionFactory.openSession(); // Generate a session session.beginTransaction(); // Open transaction } @After public void tearDown() throws Exception { session.getTransaction().commit(); // Submission of affairs session.close(); // Close session } @Test public void testSQLQuery() { String sql = "select * from t_student"; Query query = session.createSQLQuery(sql).addEntity(Student.class); List studentList = query.list(); Iterator it = studentList.iterator(); while(it.hasNext()){ Student s = (Student) it.next(); System.out.println(s); } logger.debug("This is a debug information"); logger.info("This is a info information"); logger.error("This is a error information"); } }
Running this test method, you can see that the console output is:
You can see that the output of the console is different from that of the previous project. According to our configuration, we also export these information to the files of C disk: