问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

logback怎样通过http访问log

发布网友 发布时间:2022-05-01 21:55

我来回答

1个回答

热心网友 时间:2022-06-24 01:18

为了方便查看和归档:
不同包的日志可能要放到不同的文件中,如service层和层的日志;
不同日志级别:调试、信息、警告和错误等也要分文件输出。

一、根据包输出,通过logger的name属性指定不同的包

1. 创建不同包下的两个类:

Java代码
package com.john.service;

@Service
public class ObligationService {
static final Logger log = LoggerFactory.getLogger(ObligationService.class);

@Resource
ObligationDao ;

public void obligate() {
log.debug("obligate start...");
.queryObligations();
log.error("An error occurred ring the progress");
log.debug("obligate end...");
}
}

Java代码
package com.john.;

@Repository
public class ObligationDao {
static final Logger log = LoggerFactory.getLogger(ObligationDao.class);

public void queryObligations() {
log.debug("query obligations start...");
log.error("An error occurred ring the query");
log.debug("query obligations end...");
}
}

2. 在logback(-test).xml中添加:

Xml代码
<appender name="serviceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/logs/bribery.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/logs/bribery-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>

<appender name="Appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/logs/venality.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/logs/venality-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>

<logger name="com.john.service" level="DEBUG" additivity="false">
<appender-ref ref="serviceAppender" />
</logger>

<logger name="com.john." level="DEBUG" additivity="false">
<appender-ref ref="Appender" />
</logger>

在类路径下创建Spring的beans.xml文件:(beans节点省略)

Xml代码
<context:component-scan base-package="com.john" />

3. 测试方法:

Java代码
@Test
public void dispatchByPackageTest() {
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ObligationService service = ctx.getBean(ObligationService.class);
service.obligate();
}

执行测试后,
bribery.log:
15:59:59.839 [main] DEBUG c.j.s.ObligationService - obligate start...
15:59:59.844 [main] ERROR c.j.s.ObligationService - An error occurred ring the progress
15:59:59.844 [main] DEBUG c.j.s.ObligationService - obligate end...

venality.log:
15:59:59.844 [main] DEBUG c.j.d.ObligationDao - query obligations start...
15:59:59.844 [main] ERROR c.j.d.ObligationDao - An error occurred ring the query
15:59:59.844 [main] DEBUG c.j.d.ObligationDao - query obligations end...

二、根据日志级别输出

这里把所有级别为ERROR的日志输出到一个文件中

1. 修改logback(-test).xml文件

serviceAppender和Appender都加入以下级别过滤器,这样错误日志就不会在bribery.log和venality.log中打印了:

Xml代码
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>

新建一个错误日志的appender:

Xml代码
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/logs/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/logs/venality-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %thread %X{invokeNo} %logger{40} %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

name为com.john.和com.john.service的logger都加上errorAppender:

Xml代码
<appender-ref ref="errorAppender" />

2. 执行上面的测试方法,service和的错误日志都打印到error.log文件中了:
16:12:51,433 main com.john..ObligationDao An error occurred ring the query
16:12:51,433 main com.john.service.ObligationService An error occurred ring the progress
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在线条形码生成 ie地址栏是什么 ie浏览器的官网地址是什么? 团餐定制电话 抖音电商与广东商务厅启动“富域计划” 简单的晚餐晒美食文案句子 简单的晚餐晒美食说说短句 鸭肉炒什么好吃家常做法 为什么越背越记不住 绯牡丹锦多久浇水 绯牡丹养护要点 大金1.5匹空调底角距离是多少 谜语 兔死狐悲假慈悲 猜一动物 Slf4j + Logback 怎么过滤掉第三方包中的日志显示 b超检查中低回声是什么意思 大金挂壁式空调1·5匹外机尺寸多少 logback怎么输出tomcat日志 宫壁低回声什么意思 护师资格证,如果单位不是当年聘用,会不会失效以后要重考?几年有效期呢?是护师,不是*!!!! 兔死狐悲,解是什么生肖? logback.xml配置 护士怎样升为护师 logback运行时异常怎么记录 兔死狐悲,是什么生肖呢? logback logger appender encoder pattern是什么意思 logback怎么根据logger输出不同文件 初级护师的报名需要什么条件? logback需要配置哪些东西 logback是怎么格式化 本科护理学毕业后是可以直接由医院聘任为初级护师吗? logback怎么设置日志格式 护师报名在网上已报好,但我现在没有工作单位怎么办 低回声团块是什么意思 大金空调FTXF135KC-R 型号和FTXF135KC-W有什么不同 java怎么用logback做日志记录以html的形式展示 如何在logback日志配置文件中配置相对路径 大金空调具体尺寸 大金空调帕蒂能外机尺寸 足部皮下低回声区是啥意思 java启动如何去掉logback自身调试信息 甲状腺结节样低回声是什么意思 大金外机140金制重量及尺寸 logback可以定义两个root日志吗 肝内见23*20*16mm低回声是什么意思? spring boot logback日志 怎么彩色输出 宫腔内低回声区是什么意思? 照阴道B超内低回声是什么意思? 子宫前壁低回声是什么意思,23mm*20mm? logback.xml配置的日志文件在哪 颈部淋巴结低回声区啥意思? logback+slf4j整全, TimeBasedRollingPolicy不起作用