我使用Spring + Log4j。我可以在Eclipse控制檯中看到我的日誌,但Log4j無法寫入目標文件。log4j無法寫入文件
我的web.xml:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
我log4j.properties:目標文件爲d:/home/site/wwwroot/logs/swinguserver.log
### set log levels ###
log4j.rootLogger = DEBUG, CONSOLE, LOGFILE
### Settings for Console ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold = INFO
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### Settings for File ###
log4j.appender.LOGFILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.File = D:\/home\/site\/wwwroot\/logs\/swinguserver.log
log4j.appender.LOGFILE.Append = true
log4j.appender.LOGFILE.Threshold = DEBUG
log4j.appender.LOGFILE.layout = org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.LOGFILE.DatePattern = '_'yyyyMMdd'.log'
Java代碼我用它來測試彈簧+的Log4j,日誌級別是INFO和日誌內容是:JSONController.getShopInJSON(),名稱= XXXXXX
@Controller
@RequestMapping("/test")
public class JSONController {
private static final Logger logger = Logger
.getLogger(JSONController.class);
@RequestMapping(value="{name}", method = RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
logger.info("JSONController.getShopInJSON(), name = " + name);
Shop shop = new Shop();
shop.setName(name);
shop.setStaffName(new String[]{"mkyong1", "mkyong2"});
return shop;
}
}
W¯¯母雞我訪問的瀏覽器測試URL,我可以看到在Eclipse控制檯所需的日誌:
然而,當我檢查d:/首頁/網站/ wwwroot文件/日誌/ swinguserver .LOG,沒有什麼關於測試日誌:
什麼建議嗎?感謝你們。
嗨vikky,請你進一步解釋爲什麼使用FileAppender而不是DailyRollingFileAppender?謝謝。 – Rangtian