简述:

添加logger的日志输出,下面是配置信息供备忘


步骤:

1. 在Maven的porn.xml 文件中添加dependency如下

[html] view plaincopy

  1. <dependency>

  2. <groupId>org.slf4j</groupId>

  3. <artifactId>slf4j-log4j12</artifactId>

  4. <version>1.7.2</version>

  5. </dependency>

之后就会添加三个包,

2. 之后在项目下添加log4j.properties

项目路径如下,

log4j.properties

[html] view plaincopy

  1. #config root logger

  2. log4j.rootLogger = INFO,system.out

  3. log4j.appender.system.out=org.apache.log4j.ConsoleAppender

  4. log4j.appender.system.out.layout=org.apache.log4j.PatternLayout

  5. log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n

  6. #config this Project.file logger

  7. log4j.logger.thisProject.file=INFO,thisProject.file.out

  8. log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender

  9. log4j.appender.thisProject.file.out.File=logContentFile.log

  10. log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout

3. 在代码中添加

[java] view plaincopy

  1. private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);

接下来就能输出了,

[html] view plaincopy

  1. logger.info("now {}" , "starting server");

输出如下:

如果要输出logger文件:

[plain] view plaincopy

  1. log4j.rootLogger=INFO,R,stdout

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

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

  4. log4j.appender.stdout.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n

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

  6. log4j.appender.R.File=../logs/log

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

  8. log4j.appender.R.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n

下面是log4j.properties的配置信息,在此要感谢前辈提供的资源

#输出格式
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

格式化例子:
log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F\:%L}-%m%n

注意:

1.信息格式化的小知识
    这些参数中间可能会参杂一些数字比如:%5p它的意思就是在输出此参数之前加入多少个空格,还有就是里面的“\”的作用是转义字符

2.log4j.properties文件放置位置
    (1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。
    (2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文 件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配 置一下呢?比如使用Websphere等非apache服务器。

3.对于java web项目里面的日志的位置配置
    (1)如果是要指定日志文件的位置为D盘下的log.txt文件。
    log4j.appender.thisProject.file.out.File=d:\\log.txt
    (2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件
    log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log

4.log4j的加载机制

log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读 log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。

把log4j.properties当作一个struts.xml或者一个hibernate-cfg.xml就可以了。但不同的是,log4j不像 struts和hibernate,它不是一个独立的组件,没法自己完成初始化,一般都是什么组件需要它 就去初始化。比如,hibernate默认的日志组件就是log4j,在hibernate初始化的时候它会去初始化log4j。如果你没配置 log4j.properties,hibernate会抛出异常,但还是可以正常初始化。

本文转自:http://blog.csdn.net/anialy/article/details/8529188

感谢原文作者!

转载于:https://blog.51cto.com/chengxuyuan/1564826

slf4j 和 log4j合用的(Maven)配置相关推荐

  1. slf4j 和 log4j的关系及合用Maven配置

    最近因为项目实在是太忙,都没有时间学习.有时候会很矛盾,一方面是全心全意的想去快速做完项目,一方面又想学习点新东西.这样导致这两三个月都没有去学习一些新的东西,这周我开始创建自己的maven项目,因为 ...

  2. slf4j 和 log4基础入门(Maven配置)

    2019独角兽企业重金招聘Python工程师标准>>> 我们将从四个问题出发. 第一,log4j是什么? log4j是一个日志系统,是Apache的一个开放源代码项目.当然Java日 ...

  3. 1.Slf4j使用log4j的配置参数、配置sl4j/log4j输出到不同的文件、案例

    1.Slf4j使用log4j的配置参数 转自:https://blog.csdn.net/yx0628/article/details/83214387 slf4j,即简单日志门面(Simple Lo ...

  4. SLF4J和log4j的整合使用

    概念 SLF4J:即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J是一个用于日志系统的简 ...

  5. slf4j和log4j的使用

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path" 1 2 3 4 5 &l ...

  6. SLF4J 与Log4J

    为什么要使用SLF4J而不是Log4J 每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.loggi ...

  7. java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽

    为什么程序需要记录日志 我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统 ...

  8. maven配置SSM框架整合 其中包括maven在使用过程中遇到的问题

    1.安装maven和配置 1.下载maven.apache.org/download.html,下载apache-maven-3.1.1-bin.zip,**-src.zip为Maven的源码 2.配 ...

  9. 使用IDEA+maven配置SSM项目步骤,以及配置项目过程中遇到的各种坑(SSM配置文件加载问题,使用注解开发问题,maven开发SSM项目步骤)

    问题概览 1. 更改springmvc配置文件的默认位置,但是"classpath:文件路径",路径明明正确,但是就是识别不到,idea报找不到配置文件的错误. 2. 使用myba ...

最新文章

  1. 使用rel=noopener
  2. SpringBoot + Vue + nginx项目一起部署
  3. 彩色RGB图像转为灰度图像
  4. python 制作高斯mask_Python3 练手项目: 抓取豆瓣陈情令评论,并制作词云图
  5. 计算机上机模拟试题答案,2016计算机二级上机模拟试题及答案
  6. React-Native填坑之TextInput value属性
  7. 新疆师范大学计算机科学学院,新疆师范大学王炜教授亲临计科学院讲学——记计算机科学学院研究生院...
  8. 让机器有温度:带你了解文本情感分析的两种模型
  9. 实验一 命令解释程序编写
  10. 深度学习图像标注工具
  11. paip.ollydbg 设置c++ qt API断点总结
  12. range,xrange,arange比较
  13. 用Windows自带图片查看器查看图片的dpi分辨率大小
  14. 微信小程序 添加分割线
  15. linux中PATH环境变量的作用和使用方法
  16. MATLAB2018B下用Faster-RCNN做目标检测的训练和测试步骤
  17. 在线音乐播放项目——BY音乐
  18. ps一点等于多少厘米_在ps中1厘米是多少像素
  19. elk替代_记一次关于elk收集的日志中把手机号码用***代替遇到的问题以及解决
  20. 查看世界编程语言排行榜

热门文章

  1. 图神经网络(GNN)系列
  2. 盘点:近两年人工智能和机器学习领域部分收购案
  3. SAP MM 没有维护MRP 视图的物料可以正常参与采购业务
  4. Pytorch固定随机性
  5. 线性规划的原始对偶算法
  6. 自动驾驶出行,进入下半场
  7. 专家解读下一代互联网创新模式,核心技术是根本
  8. 人脑动态功能网络连接模式能够鉴别个体并预测其认知功能
  9. 微软低调发布 Web 版本的 Visual Studio Code 预览
  10. 厉害了!蚂蚁 mPaaS:有人修建高楼,有人重构城市