前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >log4j pattern详解_log4j不同的类输出到不同文件中

log4j pattern详解_log4j不同的类输出到不同文件中

作者头像
全栈程序员站长
发布2022-09-23 10:01:17
7460
发布2022-09-23 10:01:17
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

spring使用log4j,可以有2种方法。

1、在web.xml里不做任何配置。

log4j.properties放在classpath根目录下,

这时候生成的日志文件就没有相对路径,如果写相对路径,则会生成在安装tomcat的根路径下。

2、在web.xml设置。

代码语言:javascript
复制
<context-param>  
        <param-name>log4jConfigLocation</param-name>  
        <param-value>WEB-INF/classes/log4j.properties</param-value>  
</context-param>  
  
<context-param>  
        <param-name>webAppRootKey</param-name>  
        <param-value>myappfuse.root</param-value>  
</context-param>  
      
<listener>  
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
</listener>  
<listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener>

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

log4j.rootLogger = INFO,stdout 这句中的INFO是设置了输出该级别以上的日志

INFO,WARN,ERROR,FATAL等消息都会输出。哪到底每条消息是哪个级别呢?%p就是输出该条消息的级别。

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2011-10-18 22:10:28,921 %r: 输出自应用启动到输出该log信息耗费的毫秒数 %c: 输出日志信息所属的类目,通常就是所在类的全名 %t: 输出产生该日志事件的线程名 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。 %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 %%: 输出一个”%”字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息 %n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-“号指定左对齐。 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉

测试代码

代码语言:javascript
复制
import org.apache.log4j.Logger;
public class HelloLog4j {
 private static Logger logger = Logger.getLogger(HelloLog4j.class);
 /**
  * @param args
  */
 public static void main(String[] args) {
  // System.out.println("This is println message.");
  
  // 记录debug级别的信息
  logger.debug("This is debug message.");
  // 记录info级别的信息
  logger.info("This is info message.");
  // 记录error级别的信息
  logger.error("This is error message.");
 }
}

Log4j写入数据库详解

http://blog.csdn.net/ziruobing/article/details/3919501

Log4j学习汇总—–配置详解

http://blog.csdn.net/meng2602956882/article/details/16951643

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1664101

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172106.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档