java - 使用多个记录器时出错
问题描述
我正在使用多个记录器附加到多个日志文件中。这些日志文件的路径是动态设置的。
我正在用 java 做我的项目并使用 log4j 框架。我的项目结构。
src
log4test
log4test.java
log4test2
log4test2.java
log4j.properties
log4test.java:-
public class Log4Test{
public static void main(String[] args)throws IOException,SQLException{
System.setProperty("logs", "C:\\New folder 3\\logs.log");
Logger log = Logger.getLogger("file");
log.info("hello");
Log4Test2.fefe();
}
}
log4test2.java:-
public class Log4Test2{
/* Get actual class name to be printed on */
public static void fefe()throws IOException,SQLException{
System.setProperty("logs.file", "C:\\New folder 2\\logs.log");
Logger log = Logger.getLogger("admin");
log.info("Debug2");
log.info("Info2");
}
}
log4j.properties:-
log4j.rootLogger=INFO
log4j.logger.file=INFO, file
log4j.logger.admin=INFO, admin
# Define the file appender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=$[logs}
# Define the layout for file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss}
[%p] %m%n
# Define the file appender
log4j.appender.admin=org.apache.log4j.FileAppender
log4j.appender.admin.File=${logs.file}
# Define the layout for file appender
log4j.appender.admin.layout=org.apache.log4j.PatternLayout
log4j.appender.admin.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss}
[%p] %m%n
我收到此错误:- log4j:ERROR setFile(null,true) 调用失败
解决方案
你能检查一下这条线吗
# Define the file appender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=$[logs} //TODO should be ${logs}
如果我没有记错的话。谢谢你。
第二个想法是:
公共类 Log4Test2{
private final Logger logger = LoggerFactory.getLogger("admin");
public void fefe()throws IOException,SQLException{ //try remove static
System.setProperty("logs.file", "C:\\New folder 2\\logs.log");
log.info("Debug2");
log.info("Info2");
}
推荐阅读
- c# - 为什么我通过docker中的nginx反向代理访问我的网站时无法连接到signalR的chatHub?
- ocr - 如何在由 Kofax 扫描到 Excel 的 PDF 中的表格中获取 cel 值
- appium - ITimeouts 不包含 Appium 中 ImplicitWait 的定义
- c++ - Platformio 编译错误:ArduinoJson6100_100::DynamicJsonDocument 没有名为“nestingLimit”的成员
- java - 如何在此代码中修复 ArrayIndexOutOfBoundsException?
- windows - 将默认端口(80)更改为 8080 时如何设置虚拟主机?
- java - 如何在 Sudoku Solver 中查找和求解多个解?
- python - python中打印函数的SyntaxError
- react-native - 有什么方法可以自动读取 ios 中的 otp 吗?
- python - Python numpy/math isclose - 需要检查是否小于浮点数或大于具有阈值的浮点值