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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言数组 一维数组篇

    C语言数组 一维数组篇前言:本文章主要用于个人复习,追求简洁,感谢大家的参考、交流和搬运,后续可能会继续修改和完善。因为是个人复习,会有部分压缩和省略。一、数组1.数组的定义:2.C语言规定:数组的每个元素都有下标,且下标是从0开始的。3.数组的使用4.数组使用时可能出现的错误越界访问:经典题型5.判断两个数组类型是否相同:…

    2022年7月22日
    10
  • eclipse创建一个java项目目录_Eclipse创建JAVA项目

    eclipse创建一个java项目目录_Eclipse创建JAVA项目项目:project包:package类:class为了便于硬盘上的文件进行管理,通常都会将文件分目录进行存放。同理,在程序开发中,也需要将编写的类在项目中分目录存放,以便于文件管理。为此,Jaca引入了包(package)机制,(貌似跟Python的包差不多),程序可以通过声明包的方式对Java类定义目录。Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。在声明包时,使用Pac…

    2022年7月19日
    16
  • Java8新特性—stream流的使用

    Java8新特性—stream流的使用

    2021年8月3日
    58
  • mysql优化 面试_数据库优化方案整理

    mysql优化 面试_数据库优化方案整理点赞是一种积极的生活态度!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!而且这个问题就是一个送分题,数据库的优化方案基本就是那些,答案也都是固定的,大家只要好好…

    2025年7月13日
    4
  • 详解LRU缓存算法[通俗易懂]

    详解LRU缓存算法

    2022年2月12日
    57
  • python中delay__python delay函数「建议收藏」

    python中delay__python delay函数「建议收藏」Python中的sleep函数本人是Python菜鸟一枚,今天用python时,发现如果按照下图所示来写程序在我的Python环境(Win7+Python2.7.9)下测试没问题,是等待5秒后再输出m。你的问题可能是被标准输出流的缓冲区缓冲了,给stdout加一个flush就可以了:fromtimeimportsleepfromsysimportstdoutprint…

    2022年6月2日
    46

发表回复

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

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