我们今天要给之前编码的一个maven的web项目提供slf4j的日志,这样所有的日志信息可以显示到项目的某个目录的log文件中。

项目的样子如下图:

首先配置pom,我也不知道下面的内容是否必要

org.springframework

spring-web

4.3.10.RELEASE

log4j

log4j

1.2.17

org.slf4j

slf4j-api

1.8.0-beta0

spring5以后取消了对于Log4jConfigListener的支持,或者说spring的web那个包中Log4jConfigListener的类已经作废了,所以需要使用spring4版本的类库。

我们的项目就可以配置slf4j了。

slf4j要求我们首先提供一个名为log4j.properties的配置文件其内容如下:

# 日志输出级别(INFO)和输出位置(stdout,R)

log4j.rootLogger=INFO, stdout , R

# 日志输出位置为控制台

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

# 日志输出位置为文件

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File=D:\\OxygenWork\\WindDevelop\\logs\\WindLog.log

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

# 定义相应包路径下的日志输出级别

log4j.logger.com.alibaba=DEBUG

log4j.logger.com.opensymphony.oscache=ERROR

log4j.logger.org.springframework=DEBUG

log4j.logger.com.ibatis.db=WARN

log4j.logger.org.apache.velocity=FATAL

log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN

log4j.logger.org.hibernate=DEBUG

log4j.logger.org.logicalcobwebs=WARN

上述配置内容中log4j.appender.R.File的值表示最终日志内容保存到那个log文件中。

上述这个log4j.properties配置文件需要被配置到这个项目的classpath下

上述位置实际上是java源文件的位置,但是当你将文件拷贝到这个位置以后,eclipse会帮助你将文件部署到class的根目录,如下图:

好的,我们现在拥有了配置文件,我们需要将slf4j的配置文件,配置到web.xml中,让它起作用。

Archetype Created Web Application

log4jConfigLocation

classpath:log4j.properties

org.springframework.web.util.Log4jConfigListener

WindFilter

WindFilter

net.web.WindFilter

WindFilter

/yes/enterpage.jsp

WindServlet

WindServlet

net.web.WindServlet

WindServlet

/yes/enterpage.jsp

全都配置好了,我们来测试一下

package net.infopack;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class LogTest {

final static Logger logger = LoggerFactory.getLogger(LogTest.class);

public void fLogCheck(String str) {

String s1 = str + "shut the fk up!";

logger.info("测试:{}", s1);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

LogTest lt1 = new LogTest();

lt1.fLogCheck("Paul George,");

}

}

运行的结果,console和log文件

上述

java sl4j 日志_为Java项目添加slf4j的log日志-阿里云开发者社区相关推荐

  1. mysql数据漂移_数据库漂移-和数据库漂移相关的内容-阿里云开发者社区

    MySQL双主一致性架构优化 | 架构师之路 一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点. 在一个My ...

  2. 图论 物联网_图论算法-和图论算法相关的内容-阿里云开发者社区

    数学建模需掌握的知识总纲 数学建模需要掌握许多知识,这里我列出总纲: 学建模中的算法 穷举法 神经网络 模拟退火 遗传算法 图论算法 蒙特卡洛算法 所需基础知识 高等数学 线性代数(矩阵加减乘除) 概 ...

  3. 揭秘python的5种最佳调试方法_揭秘 IPython 的 5 种最佳调试方法-阿里云开发者社区...

    云栖号:https://yqh.aliyun.com 第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 一个好的集成开发环境(IDE)附带的调试器是 ...

  4. lua mysql 事务_为什么在 Redis 实现 Lua 脚本事务?-阿里云开发者社区

    在刚过去的几个月中,我一直在构思并尝试在 redis 中实现 lua 脚本的事务功能.没有多少人理解我的想法,所以我将通过一些历史为大家做下解释. MySQL 与 Postgres 在 1998-20 ...

  5. mysql blackhole引擎_【原创】MySQL blackhole 存储引擎简记-阿里云开发者社区

    The BLACKHOLE storage engine acts as a"black hole"that accepts data but throws it away and ...

  6. mysql异地多活方案_基于MGR高可用异地多活方案-阿里云开发者社区

    一.概述 主要目的实现MySQL高可用解决方案,实现异地多活. 二.实现构思 基于MGR实现高可用异地多活 首先要基于位置信息进行分片,例如华北 华中,华南,程序层要进行ip过滤和判断, 针对不同的i ...

  7. python数据科学实践指南_《Python数据科学实践指南》——导读-阿里云开发者社区...

    前 言 为什么要写这本书 我接触大数据技术的时间算是比较早的,四五年前当大数据这个词火遍互联网的时候,我就已经在实验室里学习编程及算法的知识.那个时候我一心想要做学术,每天阅读大量的英文文献,主要兴趣 ...

  8. 什么叫有效物理网卡_如何区分虚拟网卡和物理网卡?-阿里云开发者社区

    一.什么是物理网卡和虚拟网卡? 图示如下:红色部分包含VMWare的为虚拟网卡. 通常,我们部署VMWare虚拟机.VMSphere虚拟集群.XenCenter虚拟集群是都会涉及虚拟网卡. 二.辨别物 ...

  9. 分解连续自然数的和_正整数分解为几个连续自然数之和-阿里云开发者社区

    题目:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列. 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 ...

最新文章

  1. C#如何在Form中嵌入并且操作Excel表格
  2. Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)
  3. python3版本之间的区别-python3.6与3.4版本的区别是什么?
  4. msdn画圆弧函数_精确之美——用TikZ画硬盘示意图
  5. 笔记本屏幕30hz_你真的了解笔记本电池和电源适配器吗?
  6. Apache Flink 在汽车之家的应用与实践
  7. 最新综述|深度学习的单目人体姿态估计
  8. UI设计灵感|高级黑网页首图就该这样设计
  9. Android Studio出现R.raw文件标红找不到错误(有多个模块的Project)
  10. 网络分解的时代即将到来,云服务商正在铺路 | 分析师洞察
  11. java变量类型概念_java变量类型
  12. MyCat分片规则之枚举分片
  13. 车辆信息识别 车辆目标检测 车牌识别 车型识别 颜色 朝向 车大小识别
  14. 如何解决ueditor乱码问题
  15. 利用java程序实现文件加密
  16. 使用python批量压缩图片分辨率到指定大小,替换之前的压缩Image.ANTIALIAS
  17. 【工具推荐】下载github部分文件
  18. C语言scanf为啥有时候要输入两次(解析)
  19. GA-RPN:Region Proposal by Guided Anchoring
  20. OpenGL地球(自转+贴图)

热门文章

  1. HAPPE+ER软件:标准化事件相关电位ERP的预处理的pipeline
  2. CloudSim云计算仿真平台软件
  3. idea解决jar包冲突的实用技巧
  4. HanLP 自然语言处理使用总结
  5. Access VBA 学习笔记 技巧
  6. VSCode 前端必备插件
  7. 【linux】ssh远程进行teamviewer配置
  8. puzzle(0919)一个白球一个坑、图形对位
  9. 虚拟聊天室(中介者模式实战)
  10. 文本情感分析:去停用词