log4j 配置详解_指定log4j2配置文件位置

log4j 配置详解_指定log4j2配置文件位置先来个配置文件—-log4j.rootLogger=debug,stdout,logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.errlog4j.appender.stdout.layout=org.apache.log4j.SimpleLayoutlog4j.appender.logfile=org.apache.log4j.FileAppender

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

先来个配置文件—-

log4j.rootLogger=debug,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=d:/msb.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{ 
   yyyy-MM-dd   HH:mm:ss} %l %F %p %m%n

日志内容之外的要求—-
1,log4j的配置文件格式为 .properties,必须命名为
log4j.properties不然会读取配置文件失败;

2,标准格式时键值对来保存配置内容—-key=value;

3,习惯将log4j.properties文件放在根目录下,因为默认情况下, 查找 日志配置文件是在CLASSPATH中查找名为log4j.properties的文件。

日志内容要求——
log4j.rootLogger—–>表示日志记录的级别以及记录方式

log4j.rootLogger=debug,stdout,logfile—–>日志记录级别为debug,输出方式为两种stdout,logfile(两种方式需要自己指定;)

日志记录级别—-的优先级

  1. fatal:出现非常严重的错误事件,这些事件可能导致程序异常终止

  2. error:虽有错误,但允许应用程序继续运行

  3. warn:运行环境潜藏着危害

  4. info:报告信息

  5. debug:细粒度的信息事件,对应于程序的调试;

每种级别包含他之上的级别;
即输出级别error包含fatal, debug包含上述所有级别

log4j.appender.stdout =——-表示输出方式

log4j.appender.stdout=org.apache.log4j.ConsoleAppender ——->在控制台输出
log4j.appender.stdout.Target=System.err—->>>表示输出信息为系统error
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout—–>>表示输出格式为简单的格式

同理可以理解—-
log4j.appender.logfile=org.apache.log4j.FileAppender—->>输出位置在日志文件中
log4j.appender.logfile.File=d:/msb.log —–>>指定日志文件位置
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout—->>>输出格式—–指定格式
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n —–>>>定义指定的格式

log4j.properties语法:

##Define the root logger with appender X
log4j.rootLogger = DEBUG, X
##Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
##Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

log4j.appender.X.中只要保证X一致即可,并非一定要使用 stdout和logfile 不过见名知意是最好的;

不过日常使用中一般不自己写而是直接到官网找到相关配置文件复制粘贴,然后改改就可以自己用了;
将log4j.properties配置文件的输出记录到控制台。

log4j.rootLogger=debug,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

将log4j.properties配置文件的输出记录到日志文件。

log4j.rootLogger=debug,logfile
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=d:/msb.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd   HH:mm:ss} %l %F %p %m%n

也可以同时记录,不过一般是按需所求,用户不需要看到某些错误信息,只给用户该看的就可以了;

再接触到xml之后,也可以用xml取完成配置文件—–

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
      </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="console" />
  </root>
</log4j:configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
 
  <appender name="file" class="org.apache.log4j.RollingFileAppender">
     <param name="append" value="false" />
     <param name="maxFileSize" value="10KB" />
     <param name="maxBackupIndex" value="5" />
     <!-- For Tomcat -->
     <param name="file" value="${catalina.home}/logs/my.log" />
     <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
     </layout>
  </appender>
 
  <root>
    <level value="ERROR" />
    <appender-ref ref="file" />
  </root>
 
</log4j:configuration>

最后整合一个标准的

# Root logger option
log4j.rootLogger=INFO, file, stdout
 
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\my.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
 
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
      </layout>
  </appender>
 
  <appender name="file" class="org.apache.log4j.RollingFileAppender">
      <param name="append" value="false" />
      <param name="maxFileSize" value="10MB" />
      <param name="maxBackupIndex" value="10" />
      <param name="file" value="${catalina.home}/logs/my.log" />
      <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
      </layout>
  </appender>
 
  <root>
    <level value="DEBUG" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>
 
</log4j:configuration>

日志记录的方式——

package com.gavin;
import org.apache.log4j.Logger;
import java.io.IOException;
public class Test01 { 
   
    public static void main(String[] args) throws IOException { 
   
        //Logger logger = Logger.getLogger("com.gavin.Test01");//类的全路径名
        Logger logger = Logger.getLogger(Test01.class);
    
       logger.fatal("fatal");
        logger.error("error");
        logger.warn("warn");
        logger.info("info");
        //logger.debug("debug");
        try { 
   
            int result = 1 / 0;
        } catch (Exception e) { 
   
            logger.error("程序运算错误", e);
        }
    }
}

注—–以上内容仅供学习参考使用;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187647.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 网站部署ssl证书_阿里云ssl证书部署教程

    网站部署ssl证书_阿里云ssl证书部署教程阿里云续费SSL证书下载证书文件在正式服务器上部署IIS部署阿里云部署步骤:步骤一:下载文件1、登录SSL证书控制台。2、在左侧导航栏,单击SSL证书。3、定位到已签发的SSL证书,单击操作列下的下载。4、在证书下载面板,单击IIS服务器类型后的下载5、解压缩已下载的SSL证书(IIS)压缩包。此时,证书已保存在本地计算机中,导入到服务器端即可步骤二:导入到服务器中1、在服务器按Win+R键,打开运行。2、输入mmc,单击确定3、为本地计算机添加证书管理单元。3.1、在

  • Java审计之SQL注入篇

    Java审计之SQL注入篇0x00前言本篇文章作为JavaWeb审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。0x01JDBC注入分析

    2021年12月12日
  • JAVA中输出语句中+的作用[通俗易懂]

    JAVA中输出语句中+的作用[通俗易懂]System.out.println()输出语句里面的+号,根据俩边的数据类型作不同处理,有俩种情况。①+后输出字符串,例如1+”a”输出的就是1a②+后输出数字,而不是字符串,例如1+‘a’,输出的就是98个人理解,觉得1+“a”,String类的优先级比较高,所以把1转换成了字符串,最后连接了起来,1+’a’是Int型的精度比较高,故将a转换成了int型再相加…

  • let/const 的变量提升与暂时性死区

    let/const 的变量提升与暂时性死区在面试或一些文章中提到var和let/const区别时,总说var有变量提升,let/const不存在变量提升,这种说法是错误的.var和let/const都有变量提升,但是let/const暂时性死区的存在要求调用该类变量前必须先经过显式赋值

  • 深度剖析原理!java培训网课代理[通俗易懂]

    深度剖析原理!java培训网课代理[通俗易懂]前言想必很多人在为接下来的金九银十做准备,或许你只是想找到一份工作,亦或许你希望通过今年最后这波拿到一个理想的工作和薪酬。不管是哪一种情况,你都需要提前做好准备,而不是临时抱佛脚。LZ为大家分享的这些面试真题一定要基于自己的技术栈来思考,而不是背一下就觉得这个我会了。试想一下,如果面试官接着往深处问,你能保证自己回答的上来吗?这样的跳槽方式在以前或许还比较适用,但是在今年一定是没有效果的,没有意义的。LZ把这350道Java面试真题分成了五大专题,分别是:性能优化、微服务架构、并发编程(高级)、开源框

  • noip2014普及组初赛答案_csp提高组一等奖

    noip2014普及组初赛答案_csp提高组一等奖题目背景NOIP2011提高组DAY2试题3。题目描述风景迷人的小城Y市,拥有n个美丽的景点。由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点,随后依次前往2、3、4……n号景点。从第i号景点开到第i+1号景点需要Di分钟。任意时刻,公交车只能往前开,或在景点处等待。设…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号