日誌slf4j+log4j配置問題
阿新 • • 發佈:2017-07-10
root -- output onf 類名.class 新的 是否 cati ring
簡介
slf4j 相當於抽象類
log4j 相當於實現,當然還有其他的實現,如logback,jdk自帶的logging等
具體配置maven 配置 pom.xml加入
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
log4j.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<!--若幹個appender的定義-->
<!--org.apache.log4j.ConsoleAppender 輸出到控制臺-->
<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
<!--輸出格式-->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
</layout>
</appender>
<!--org.apache.log4j.DailyRollingFileAppender 每天產生一個日誌文件-->
<appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="output.log"/><!--文件位置-->
<param name="Append" value="true"/><!--是否選擇追加-->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
</layout>
</appender>
<!--org.apache.log4j.RollingFileAppender 滾動日誌文件輸出 文件大小到達一定尺寸時重新產生新的文件-->
<!--<appender name="myFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="D:/output.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
</layout>
</appender>-->
<!--將各個包中的類日誌輸出到不同的日誌文件中
這樣可以便於日誌的分類。
可以通過這個設置,把業務邏輯的日誌添加到數據庫。起到過濾的作用
-->
<!--這段配置的就是說把包名為“com.zjut.a1”且優先級為debug的日誌通過myFile這個appender來處理。
-->
<category name="com.xxx">
<priority value="info"/>
<appender-ref ref="myConsole"/>
</category>
<!-- 根logger的設置-->
<root>
<!--優先級設置,假設設置為“info”,則無法輸出debug級別的日誌-->
<priority value="info"/>
<!--<priority value="info"/>-->
<!--<priority value="warn"/>-->
<!--<priority value="error"/>-->
<!--<priority value="fatal"/>-->
<!--添加剛才設置的appender-->
<appender-ref ref="myConsole"/>
<appender-ref ref="myFile"/>
</root>
</log4j:configuration>
web.xml加入
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
測試代碼:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("test")
public class TestController {
// // 類名.class
private final static Logger logger = LoggerFactory.getLogger(TestController.class);
@Resource(name = "testServiceImpl")
private TestService testservice;
@RequestMapping("/view.do")
public ModelAndView getAllTest() {
List<Test> list = testservice.getAllTest();
Map map = new HashMap();
map.put("testlist", list);
logger.info("******get list from get ALLTest-----------------------------------");
return new ModelAndView("index", map);
}
}
最後一步,copy maven jar到工程lib裏面
日誌slf4j+log4j配置問題