Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Logging slf4j-同时记录到几个实现_Logging_Slf4j_Appender - Fatal编程技术网

Logging slf4j-同时记录到几个实现

Logging slf4j-同时记录到几个实现,logging,slf4j,appender,Logging,Slf4j,Appender,如果一个用户想要登录到控制台并将两者都归档,那么如何使slf4j使用少量实现(appenders)?(类似于使用loj4.properties文件配置log4j) 如何实现我自己的slf4j impl?只要实现接口,它就会自动出现在类路径上 SLF4J只是一个简单的外观:“Java或(SLF4J)的简单日志外观作为各种日志框架的简单外观或抽象,例如Java.util.Logging、log4j和logback,允许最终用户在部署时插入所需的日志框架。” 因此,您也需要一个可以打印或保存日志消息的

如果一个用户想要登录到控制台并将两者都归档,那么如何使slf4j使用少量实现
(appenders)
?(类似于使用loj4.properties文件配置log4j)

  • 如何实现我自己的slf4j impl?只要实现接口,它就会自动出现在类路径上


  • SLF4J只是一个简单的外观:“Java或(SLF4J)的简单日志外观作为各种日志框架的简单外观或抽象,例如Java.util.Logging、log4j和logback,允许最终用户在部署时插入所需的日志框架。”


    因此,您也需要一个可以打印或保存日志消息的实现。有一些选择:我会选择。也可以查看。

    SLF4J只是一个简单的外观:“Java或(SLF4J)的简单日志外观作为各种日志框架的一个简单外观或抽象,例如Java.util.Logging、log4j和logback,允许最终用户在部署时插入所需的日志框架。”

    因此,您也需要一个可以打印或保存日志消息的实现。有一些选择:我会选择。同时,请检查该选项

  • 这里将实现与附加器混淆。追加器是一个物理日志记录目标(文件、控制台等),它是log4j或logback中的一个术语,是slf4j实现。SLF4J不知道追加器

  • SLF4J设计用于一次使用一个实现。如果需要使用多个,则必须自己实现
    org.slf4j.impl.StaticLoggerBinder
    ,并将其作为唯一具有此名称的类放入类路径中,并将日志发送到此类中。不过,我还是不确定这是否是你想要的

  • 这里将实现与附加器混淆。追加器是一个物理日志记录目标(文件、控制台等),它是log4j或logback中的一个术语,是slf4j实现。SLF4J不知道追加器

  • SLF4J设计用于一次使用一个实现。如果需要使用多个,则必须自己实现
    org.slf4j.impl.StaticLoggerBinder
    ,并将其作为唯一具有此名称的类放入类路径中,并将日志发送到此类中。不过,我还是不确定这是否是你想要的


  • 谢谢。据我所知,它在运行时(classpath)中搜索执行,并使用find impl。是否有机会使用所有找到的实现,而不是第一个找到的实现?我认为这与slf4j有关,而不是与实现有关。即使我开发了自己的包装器impl,将调用传递给所有找到的impl,也不能保证我的包装器会被用来代替类路径上的其他可用impl谢谢。据我所知,它会在运行时(类路径)中搜索执行并使用找到的impl。是否有机会使用所有找到的实现,而不是第一个找到的实现?我认为这与slf4j有关,而不是与实现有关。即使我开发了自己的包装器impl,将调用传递给所有找到的impl,也不能保证使用我的包装器来代替类路径上的其他可用impl。我知道slf4j的使用本身对我来说几乎是无用的(我没有使用不同的实现,也没有在它们之间切换)。@user781137不,我认为无论如何都是值得的。它不需要任何成本,并且如果出现问题,您可以随时切换实现。如果它是一个独立的应用程序,那么在AdvancedExec中,您可能很好。这可能会派上用场。谢谢。我知道slf4j的使用本身对我来说几乎是无用的(我没有使用不同的实现,也没有在它们之间切换)。@user781137不,我认为无论如何都是值得的。它不需要任何成本,并且如果出现问题,您可以随时切换实现。如果它是一个独立的应用程序,那么在AdvancedExec中,您可能很好。这可能很方便。