Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 科特林。是否可以在文件级别设置log4j logger?_Kotlin_Log4j - Fatal编程技术网

Kotlin 科特林。是否可以在文件级别设置log4j logger?

Kotlin 科特林。是否可以在文件级别设置log4j logger?,kotlin,log4j,Kotlin,Log4j,我在Kotlin应用程序中使用log4j,并像往常一样设置它 private val logger=LogManager.getLogger(this::class.java) 我想知道,是否可以在类之外的文件级别上设置logger?我想我可能会将它作为这个文件中需要记录器的函数的参数传递,但是可能有更好的解决方案吗?是的,您可以,您需要引用您希望记录器所属的类(而不是this),或者一个带有路径的简单字符串(如果您愿意) 您将有如下内容: import org.apache.logging.l

我在Kotlin应用程序中使用log4j,并像往常一样设置它

private val logger=LogManager.getLogger(this::class.java)


我想知道,是否可以在类之外的文件级别上设置logger?我想我可能会将它作为这个文件中需要记录器的函数的参数传递,但是可能有更好的解决方案吗?

是的,您可以,您需要引用您希望记录器所属的类(而不是
this
),或者一个带有路径的简单字符串(如果您愿意)

您将有如下内容:

import org.apache.logging.log4j.LogManager

private val logger = LogManager.getLogger(Abc::class.java)

class Abc {
    fun etc(){
        logger.info("Hello")
    }
}

fun outsideOfTheClass(){
    logger.info("There")
}

object Xyz {
    fun insideSomethingElse(){
        logger.info("Hello there")
    }
}
如果您确实想要一个不引用任何类的记录器,可以执行以下操作:

val logger = LogManager.getLogger("TheNameOfTheLogger")

是的,您可以,您将需要引用您希望记录器所属的类(而不是
this
),或者一个带有路径的简单字符串(如果需要)

您将有如下内容:

import org.apache.logging.log4j.LogManager

private val logger = LogManager.getLogger(Abc::class.java)

class Abc {
    fun etc(){
        logger.info("Hello")
    }
}

fun outsideOfTheClass(){
    logger.info("There")
}

object Xyz {
    fun insideSomethingElse(){
        logger.info("Hello there")
    }
}
如果您确实想要一个不引用任何类的记录器,可以执行以下操作:

val logger = LogManager.getLogger("TheNameOfTheLogger")

嗨@Alex,谢谢你的回答。现在我明白了,我的问题表述错误:)最初我想知道它(在文件中创建一个记录器)是否可以在任何类之外实现,这意味着该文件中不存在任何类。但我想在某些情况下,我可以按照您的方法创建一个人工类,用于将记录器存储在file.aa中,当然可以。只需执行
private val logger=LogManager.getLogger(“ThenameofLogger”)
而不是类名。谢谢,@Alex!np,我也在答案中添加了这个。嗨@Alex,谢谢你的回答。现在我明白了,我的问题表述错误:)最初我想知道它(在文件中创建一个记录器)是否可以在任何类之外实现,这意味着该文件中不存在任何类。但我想在某些情况下,我可以按照您的方法创建一个人工类,用于将记录器存储在file.aa中,当然可以。只需执行
private val logger=LogManager.getLogger(“ThenameofLogger”)
而不是类名。谢谢,@Alex!np,我也在答案中添加了这个。