log4j–動態(tài)打印日志文件到指定文件夾
1、添加Maven依賴
<!-- log4j日志相關坐標 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<!-- 這里注意:如果是springBoot項目,不必再引入下邊這個jar了,
因為spring-boot-starter本身就已經引入這個jar了。以免造成jar包沖突 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
2、配置文件 log4j.properties
log4j.rootLogger = debug,stdout,file
### 輸出到控制臺 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 輸出到日志文件 ###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
###設置DatePattern,當天日志保存到log.log文件,前一天的日志文件名將被修改為log.log + _yyyy-MM-dd.log
log4j.appender.file.File =D/logs/log.log
log4j.appender.file.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.file.Append = true
## 輸出DEBUG級別以上的日志
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
3、編寫日志打印工具類 LogUtil
package com.example.loginfo;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import java.io.File;
public class LogUtil {
private static Logger logger;
private static String filepath;
public static void setLog(String path) { //path:日志保存路徑
filepath = path;
new File(filepath).mkdir(); //創(chuàng)建文件夾
}
public static void infoMsg(String filename, String msg) { //filename:生成日志的文件名 msg:日志信息
logger = Logger.getLogger("_" + filename);
DailyRollingFileAppender appender = new DailyRollingFileAppender();
appender.setFile(filepath + "/" + filename + ".log");
appender.setDatePattern("'.'yyyy-MM-dd");
PatternLayout layout = new PatternLayout("%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS}%c %m%n");
appender.setLayout(layout);
appender.setAppend(true);
appender.activateOptions();
logger.addAppender(appender);
logger.setAdditivity(false);
logger.setLevel(Level.INFO);
logger.info(msg);
appender.close();
}
public Logger getLogger() {
return logger;
}
}
4、工具類調用
package com.example.loginfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class LogController {
Logger logger = LoggerFactory.getLogger(LogController.class);
@GetMapping(value = "/log")
public void testLog() {
LogUtil.setLog("E:\\home\\cuiyudong");
List<Object> objects = new ArrayList<>();
objects.add("FHIUFWIEU");
objects.add("DASD");
objects.add("FHIUCASFFGFWIEU");
LogUtil.infoMsg("LogController日至信息:",objects.toString());
}
}
測試結果:文章來源:http://www.zghlxwxcb.cn/news/detail-600199.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-600199.html
到了這里,關于log4j--動態(tài)打印日志文件到指定文件夾的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!