2-7 log4j操作

Log4j操作

在項目開發中,我們通常會導入類似這樣的日誌Jar包: 
這裏寫圖片描述
關於這些日誌Jar包之間的關係我也搞的不是很清楚,只能作簡單的記錄。 
使用Log4j,可以查看到當前運行程序中對象創建的過程,也可以看到更詳細的信息。Log4j適合使用在程序調試中。 
例如,在本文中講解上面的Web項目使用Log4j。 
首先導入log4j的jar包,如下: 
這裏寫圖片描述 
然後添加log4j配置文件——log4j.properties,添加到src目錄下面,該文件內容如下:

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=info, stdout, file

粗略講解如下圖: 
這裏寫圖片描述

IoC配置文件和註解混合使用

實際開發中,我們都會混合使用IoC配置文件和註解,一般是使用配置文件方式創建對象,使用註解方式注入屬性。當然了,你亦可另闢蹊徑。下面我舉個例子來演示。 
在src目錄下創建一個cn.itcast.xmlanno包,並在該包下編寫一個BookDao類、PersonDao類、BookService類。

  • BookDao類

    public class BookDao {
    
        public void update() {
            System.out.println("book dao.............");
        }
    }

  • PersonDao類

    public class PersonDao {
    
        public void update() {
            System.out.println("person dao.............");
        }
    }

  • BookService類

    public class BookService {
    
        public void update() {
            System.out.println("service............");
        }
    
    }

接着創建對象,使用配置文件實現。

<bean id="bookService" class="cn.itcast.xmlanno.BookService"></bean>
<bean id="bookDao" class="cn.itcast.xmlanno.BookDao"></bean>
<bean id="personDao" class="cn.itcast.xmlanno.PersonDao"></bean>

也有人說創建對象,能用註解就用註解,而不要寫上面這種亂七八糟的東西。我覺得也蠻有道理的。 
然後在BookService類裏面注入BookDao類以及PersonDao類的對象,使用註解方式。

public class BookService {

    @Resource(name="bookDao")
    private BookDao bookDao;

    @Resource(name="personDao")
    private PersonDao personDao;

    public void update() {
        System.out.println("service............");
        bookDao.update();
        personDao.update();
    }

}

注意,不要忘了開啓註解的掃描:

<context:component-scan base-package="cn.itcast"></context:component-scan>
  • 1

最後再在cn.itcast.xmlanno包下編寫一個TestDemo單元測試類。

public class TestDemo {

    @Test
    public void testBook() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
        BookService bookService = (BookService) context.getBean("bookService");
        bookService.update();
    }
}

測試即可。

發佈了45 篇原創文章 · 獲贊 31 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章