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);
        }
    }
}

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • acwing-167. 木棒(深搜dfs+减枝)「建议收藏」

    acwing-167. 木棒(深搜dfs+减枝)「建议收藏」乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过 64 的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长度。在最后一组数据之后,是一个零。输出格式为每组数据,分别输出原始木棒的可能最小长度

    2022年8月9日
    6
  • Subversion+RabbitVCS 版本控制「建议收藏」

    Subversion+RabbitVCS 版本控制「建议收藏」Ubuntu10.04学习笔记(4)——Subversion+RabbitVCS版本控制2011年04月19日星期二17:281、安装Subversion软件sudoapt-getinstallapache2%先安装apache,配合阅读svn用,并且平时开发也是要用到的sudoapt-getinstallsubversion%svn…

    2022年7月18日
    13
  • ClassLoader cl = getClass().getClassLoader()[通俗易懂]

    ClassLoader cl = getClass().getClassLoader()[通俗易懂]ClassLoadercl=getClass().getClassLoader()getClass():取得当前对象所属的Class对象  getClassLoader():取得该Class对象的类装载器

    2022年5月31日
    33
  • Python字符串删除、截取,删除某个字符、片段[通俗易懂]

    Python字符串删除、截取,删除某个字符、片段[通俗易懂]各种字符串删除操作删除字符串某一片段删除、替换指定字符删除字符串某一片段使用字符串切片,如:str1=’1abcd.txt’str2=str1[1:-4]print(str2)Out:’abcd’索引[x,y],当某一项为0时,可以省略不写索引[x,y],当某一项为负数时,代表倒数索引删除、替换指定字符使用replace(),如:删除:replace(‘指定字符’,”),是通过将指定字符替换为空实现的str1=’abkcd’str2=str1.replac

    2022年6月3日
    47
  • FreeWebHostingArea_for free 与free用法

    FreeWebHostingArea_for free 与free用法by EliseMoreauUpdatedApril09,2018Wonderingiftherearethereanygoodsitesouttheremadepurelyforfreeimagehosting?Well,you’reinluck!Wespendalotofourtimepushinginformatio…

    2022年10月8日
    2
  • 像素密度的计算[通俗易懂]

    像素密度的计算[通俗易懂]手机屏幕5.0,指的是手机对角线的长度是5.0英寸,像素是960*1280,则像素密度的计算公式就是960的平方+1280的平方开根号除以5,得到的就是像素密度,一般有120,160,320,480

    2022年6月10日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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