log4j 中的记录器越来越空

Logger in log4j is getting null

我在我的project.The属性文件中配置了log4j如下:

# Log levels
log4j.rootLogger=INFO,LOGFILE
# Rolling File Appender

log4j.appender.LOGFILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.File=D:/nova/logs/log
log4j.appender.LOGFILE.Append = true
log4j.appender.LOGFILE.Threshold=DEBUG
log4j.appender.LOGFILE.DatePattern = '.'yyyy-MM-dd

# Define the layout for file appender
log4j.appender.LOGFILE.layout=com.utility.CustomizeHTMLLayout
log4j.appender.LOGFILE.layout.LocationInfo=false

log4j.logger.org.hibernate=FATAL

所以在我的 java 代码中,我正在 通过传递 class 名称来初始化 LogManager

private static Logger logger = Logger.getLogger("Admin Setting Manager");

"Admin Setting Manager" 是 class 的名字。 然后我正在执行以下步骤以获取根记录器信息并尝试将日志文件保存在新文件夹中:

 DailyRollingFileAppender file1 = 
 (DailyRollingFileAppender) logger.getRootLogger().getAppender("LOGFILE");

        String username = createdUser.replace(".com", "");
  //createduser will have the username who is logging in the webpage

        String path = "D:/nova/logs/"+username+"/lg.log";
        file1.setFile(path);

我在这里尝试获取登录的用户名并尝试创建用户名的目录并将每个用户的日志保存在各自的目录中。

但是记录器每隔 time.I 都是 NULL 我无法理解为什么记录器没有被初始化。

我用谷歌彻底搜索了它,但无法找到任何解决方案。 所以请帮我解决这个问题。

static Logger getLogger(Class clazz) Shorthand for getLogger(clazz.getName()).

static Logger getLogger(String name) Retrieve a logger named according to the value of the name parameter.

在您的代码中,您为 class 名称提供了空格 Admin Setting Manager 您需要删除空格。

您必须将代码更改为,
1. Logger.getLogger(AdminSettingManager.class)
2.Logger logger = Logger.getLogger("yourclassnamewithoutspace");

试试这个,

private static Logger logger = Logger.getLogger(getClass());