根据用户输入在运行时重命名记录器

时间:2017-12-02 03:12:14

标签: java

正如标题所说,我有一个Logger对象 logger ,在类 classname classname 的定义包含一个vararg String v 。如果 v 确实存在,则应将 logger 命名为,否则它应具有默认值。我该怎么做?我的代码:

final Logger logger=null;
    if(globalLogger!=null){
        logger.getLogger(globalLogger);
    }
    else{
      logger.getLogger(ImportThread.class.getName());
    }

返回:应以静态方式访问静态方法getLogger(String)。 这可能吗?如果没有,我该怎么办呢?

2 个答案:

答案 0 :(得分:0)

您应该指定您正在使用的Logger类。从当前信息来看,Logger logger变量应该是静态的

static final Logger logger=null;

请注意其余代码,但这至少应该修复“应该以静态方式访问”问题

答案 1 :(得分:0)

静态访问它意味着您将其称为类的方法:

Logger logger=null;

if(globalLogger!=null){
    logger = Logger.getLogger(globalLogger);
} else{
  logger = Logger.getLogger(ImportThread.class.getName());
}

在您的代码中,您没有使用Logger.getLogger()返回的内容,而是更改了作业;使用此代码,您无法将其设为最终,因为您无法重新分配最终变量。