Java 嵌入式码头和复杂测井

Java 嵌入式码头和复杂测井,java,logging,jetty,embedded-jetty,Java,Logging,Jetty,Embedded Jetty,Jetty 9用于嵌入式服务器,一切正常。剩下的一件事是日志记录问题 在此之前,mvn:jetty run自带了自己的日志设置,并将日志记录到控制台。这有利于发展。在生产环境中,我们需要一些更特殊的东西 目前在启动时,SLF4J抱怨没有可用的绑定,因此我们可以自由选择 这就是我们想要归档的内容: 如果在非生产环境中启动,则需要登录到控制台 在生产环境中,日志记录应在单个日志文件中完成,但应每天使用命名模式进行轮换:logs/logname-date.log(例如logs/application-

Jetty 9用于嵌入式服务器,一切正常。剩下的一件事是日志记录问题

在此之前,mvn:jetty run自带了自己的日志设置,并将日志记录到控制台。这有利于发展。在生产环境中,我们需要一些更特殊的东西

目前在启动时,SLF4J抱怨没有可用的绑定,因此我们可以自由选择

这就是我们想要归档的内容:

  • 如果在非生产环境中启动,则需要登录到控制台
  • 在生产环境中,日志记录应在单个日志文件中完成,但应每天使用命名模式进行轮换:logs/logname-date.log(例如logs/application-20130926.log)
  • 我们使用命令行参数“-production”来区分生产模式和非生产模式

    由于jetty服务器是嵌入式的,我希望有一个解决方案,我们可以完全配置记录器,而不需要管理xml或属性文件,从而将日志配置方面从部署过程中去掉

    那么,我们有哪些选择?我们如何以最好的方式做到这一点


    更新:看来回写是一条路要走。它支持日志文件旋转,还可以使用控制台输出。剩下的难题是如何通过编程实现,而不需要额外的文件。

    这里有数百个配置选项

    在选择合适的配置之前,您需要了解一些有关应用程序的信息

    如何从代码中发出日志事件?jetty服务器?以及所有第三方库

    然后,您需要回答,您希望哪个日志框架处理日志体系结构的输出(到磁盘和控制台)部分

    这在码头有记录:

    是的,该文档不适用于嵌入式模式,但它仍然是相关的

    您所需的日志jar文件:

    基本api jar:

    • slf4j api.jar
      (无论您在下面选择什么,都是必需的)
    日志捕获jar:

    (在此处拾取[0..n]个罐子)

    • log4j-over-slf4j.jar
      (slf4j处理log4j事件)
    • jul-to-slf4j.jar
      (slf4j处理java.util.logging事件)
    • jcl-over-slf4j.jar
      (雅加达公共记录事件的slf4j处理)
    日志输出jars:

    仅选择以下输出jar中的一个:

    • slf4j simple.jar
      (这是一个超级简单的日志记录实现,不适合生产)
    • logbackclassic.jar
      (slf4j自己的输出日志框架)
      • 还需要
        logback core.jar
    • slf4j-log4j12.jar
      (将slf4j事件路由到log4j进行处理)
      • 还需要
        log4j.jar
      • 如果从上面使用
        log4j-over-slf4j.jar
        ,请不要使用
    • slf4j-jdk14.jar
      (将slf4j事件路由到java.util.logging进行处理)
      • 如果从上面使用
        jul-to-slf4j.jar
        ,请不要使用
    • slf4j nop.jar
      (将slf4j事件路由到任何地方,以静默方式丢弃它们)
    • slf4j jcl.jar
      (将slf4j事件路由到雅加达公共日志)
      • 还需要
        commons logging.jar
        和您选择的commons日志实现
      • 如果从上面使用
        jcl-over-slf4j.jar
        ,请不要使用
    全部配置:

    请务必阅读每个JAR上的,因为有时可能需要了解一些额外的设置细节

    对于您描述的情况,最合适的输出jar应该是
    logback classic.jar
    slf4j-log4j12.jar
    。至于配置输出,您需要依赖这些库提供的文档


    这里有数百种配置选项

    在选择合适的配置之前,您需要了解一些有关应用程序的信息

    如何从代码中发出日志事件?jetty服务器?以及所有第三方库

    然后,您需要回答,您希望哪个日志框架处理日志体系结构的输出(到磁盘和控制台)部分

    这在码头有记录:

    是的,该文档不适用于嵌入式模式,但它仍然是相关的

    您所需的日志jar文件:

    基本api jar:

    • slf4j api.jar
      (无论您在下面选择什么,都是必需的)
    日志捕获jar:

    (在此处拾取[0..n]个罐子)

    • log4j-over-slf4j.jar
      (slf4j处理log4j事件)
    • jul-to-slf4j.jar
      (slf4j处理java.util.logging事件)
    • jcl-over-slf4j.jar
      (雅加达公共记录事件的slf4j处理)
    日志输出jars:

    仅选择以下输出jar中的一个:

    • slf4j simple.jar
      (这是一个超级简单的日志记录实现,不适合生产)
    • logbackclassic.jar
      (slf4j自己的输出日志框架)
      • 还需要
        logback core.jar
    • slf4j-log4j12.jar
      (将slf4j事件路由到log4j进行处理)
      • 还需要
        log4j.jar
      • 如果从上面使用
        log4j-over-slf4j.jar
        ,请不要使用
    • slf4j-jdk14.jar
      (将slf4j事件路由到java.util.logging进行处理)
      • 如果从上面使用
        jul-to-slf4j.jar
        ,请不要使用
    • slf4j nop.jar
      (将slf4j事件路由到任何地方,以静默方式丢弃它们)
    • slf4j-