logback 同一路径下只能有一个配置文件吗
发布网友
发布时间:2022-05-03 01:05
我来回答
共4个回答
热心网友
时间:2022-04-12 11:56
般情况下,如果在同一个web容器中有多个项目用到logback(下面都以tomcat为例,其他容器类似)
1)每个项目都自带logback的lib包和配置文件(logback.xml)
缺点:项目多的话一堆重复的第三方jar包,打war包发布更新的时候慢
2)把lib包和配置文件都放在tomcat/lib下
缺点:多个项目的配置写在同一个文件中,互相干扰,发布完还得手动改,不方便
为了解决该问题,建立了logback-web项目
内容非常简单,就一个类+一个配置文件
达到的效果:将logback的jar包和logback-web的包都放在tomcat/lib下,而每个项目自己的日志配置文件(logback.xml或logback.groovy)放在自己的WEB-INF/classes下,logback自动为每个项目分别初始化LoggerFactory
原理:logback读取配置文件的顺序为
1.classpath下(如果jar包放在tomcat/lib下它就会到这个目录找)
2.寻找Configurator的第一个实现类
3.代码内默认的配置(以固定格式输出日志到console)
logback-web就是实现了Configurator,根据每个项目初始化线程找到项目路径,分别读取配置文件
热心网友
时间:2022-04-12 13:14
Logback 可以通过编程式配置,或用 XML 格式的配置文件进行配置。
Logback 采取下面的步骤进行自我配置:
1. 尝试在 classpath 下查找文件 logback-test.xml;
2. 如果文件不存在,则查找文件 logback.xml;
3. 如果两个文件都不存在,logback 用 BasicConfigurator 自动对自己进行配置,这会 导致记录输出到控制台。
如果是maven工程直接把logback.xml放在src/main/resources里面即可。
热心网友
时间:2022-04-12 14:49
web.xml中配置:
<!-- windows logback.xml文件跟web容器(比如tomcat)在同一个目录中。Linux随意 -->
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>file:/datum/Data/conf/config/logback.xml</param-value>
</context-param>
<!-- logback.xml随意放 -->
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>file:E:\\datum\\data\\conf\\logback.xml</param-value>
</context-param>
其中file:一定要有。
<listener>
<listener-class>com.cxfmvcstu.comn.LogbackConfigListener</listener-class>
</listener>
LogbackConfigListener为自己的实现类
热心网友
时间:2022-04-12 16:40
web.xml中配置: logbackConfigLocation file:/datum/Data/conf/config/logback.xml logbackConfigLocation file:E:\\datum\\data\\conf\\logback.xml 其中file:一定要有。 com.cxfmvcstu.comn.LogbackConfigListener LogbackConfigListener为自己的实现类