Java使用Log4j记录日志的方法详解

首先去官网下载 一个压缩包 网址:  这里是 1.2.17的版本   下载之后解压就可以了

下面就从eclipse中添加 加压后的jar包

直接上图吧:

1.

2.

3.

4.

5.

导入之后就是写代码了

首先导入包:import org.apache.log4j.Logger;

然后创建 Logger写入器:private static Logger logger = Logger.getLogger(Test01.class.getName());

下面这段代码提供参考以一个除法为例:

import java.util.Scanner;
import org.apache.log4j.Logger;
public class Test01 {undefined

/**

* 创建日志写入器

*/

private static Logger logger = Logger.getLogger(Test01.class.getName());
public static void main(String[] args)  {undefined
try {undefined
devide();
} catch (Exception e) {undefined

// TODO Auto-generated catch block

e.printStackTrace();
System.out.println(e.getMessage());
logger.error(e.getMessage());
}
}

/**

* 除法功能

*/

private static void devide()  throws Exception{undefined
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数");
int num1 = input.nextInt();
logger.warn("输入被除数:"+num1);
System.out.println("请输入除数");
int num2 = input.nextInt();
logger.warn("除数:"+num2);
System.out.println(num1+" / "+num2+" = "+num1/num2);
logger.warn("输出结果:"+num1+" / "+num2+" = "+num1/num2);
}
}

然后直接run  就好了

如果出现

log4j:WARN No appenders could be found for logger (testLog4j.testLog4j).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

就是 没找到 log4j.properties文件

导入你的文件就可以了 或者,,自己写一个   右击src  ,new  File  输入文件名 log4j.properties

下面代码可以参考:

###  等级  ,输出目的地 ,输出目的地
log4j.rootLogger=DEBUG,stdout,logfile
#配置输出目的地   输出目的为 Console   布局是自己定义的
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#跟随输出
log4j.appender.stdout.Target=System.err
#自定义布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#定义布局格式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%l %F %M %p%m%n
#配置输出目的地  输出目的地为 jbit.log文件   布局 自己定义
log4j.appender.logfile=org.apache.log4j.FileAppender
#文件名称
log4j.appender.logfile.File=jbit.log
#自定义布局
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#布局格式
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%l %F %M %p %m%n

步骤如下:

之后就可以写入代码了  写入保存之后 run

到此这篇关于Java使用Log4j记录日志的方法详解的文章就介绍到这了,更多相关Java Log4j记录日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中 log4j日志级别配置详解

    1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的可以跳过,直接看1.3日志配置) 要想

  • 在Java下利用log4j记录日志的方法

    1.前言 log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布. Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中. Log4j是高度可配置的,并可通过在运行时的外部文件配置.它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,例如:数据库,文件,控制台,UNIX系统日志等. Log4j中有三个主要组成部分: loggers: 负责捕获记录信息. appenders : 负责发布日志信息,以不同的首选目

  • 在Java中使用日志框架log4j的方法

    日志就是记录程序的运行轨迹,方便快速定位问题 如果用System.out.println(),信息是打印在控制台.等到产品上线后没有控制台,如果有报错信息,根本不知道去哪里看,就不知道是哪里出错. 而且开发的时候希望打印输出的内容多.方便排查,上线后只希望打印容易出错的部分.System.out.println()满足不了这个需求 而日志框架可以让错误信息输出到多个指定文件,不同的文件有不同的输出内容.方便排错,定位错误 一.log4j介绍 Log4j有三个主要的组件/对象:Loggers(记录

  • Java日志软件Log4j的基本使用教程

    1.概述 1.1背景 在我们的日常开发中,日志记录非常重要.在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 1.2简介 Log4j(log for java)是Apache的一个开放源代码项目,它提供了一种细腻的日志管理方式.通过一个配置文件,我们可以多选择的控制每条日志的输出格式和目的地.通过定义信息的级别,我们也

  • Java使用Log4j记录日志的方法详解

    首先去官网下载 一个压缩包 网址:  这里是 1.2.17的版本   下载之后解压就可以了 下面就从eclipse中添加 加压后的jar包 直接上图吧: 1. 2. 3. 4. 5. 导入之后就是写代码了 首先导入包:import org.apache.log4j.Logger; 然后创建 Logger写入器:private static Logger logger = Logger.getLogger(Test01.class.getName()); 下面这段代码提供参考以一个除法为例: im

  • java 中enum的使用方法详解

    java 中enum的使用方法详解 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结. 原始的接口定义常量 public interface IConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu

  • Java 读取外部资源的方法详解及实例代码

    Java 读取外部资源的方法详解 在Java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取: try { BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("wkdir.txt"))); String str; while ((str = in.readLine())

  • Java AtomicInteger类的使用方法详解

    首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; } } 以下是AtomicInteger的: public class Sample2 { private static AtomicInteger count = new AtomicIn

  • Java this 关键字的使用方法详解

    Java this 关键字的使用方法详解 构造方法中的this关键字 构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用.但如果一个类有多个构造方法,可以在一个构造方法中通过this(paras-)来调用其他的构造方法. 使用this来调用其他构造方法有如下几个约束. 1) 只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用. 2) 不能通过this递归调用构造方法,即不能在一个构造方法中通过this直接或间接调

  • java 中迭代器的使用方法详解

    java 中迭代器的使用方法详解 前言: 迭代器模式将一个集合给封装起来,主要是为用户提供了一种遍历其内部元素的方式.迭代器模式有两个优点:①提供给用户一个遍历的方式,而没有暴露其内部实现细节:②把元素之间游走的责任交给迭代器,而不是聚合对象,实现了用户与聚合对象之间的解耦. 迭代器模式主要是通过Iterator接口来管理一个聚合对象的,而用户使用的时候只需要拿到一个Iterator类型的对象即可完成对该聚合对象的遍历.这里的聚合对象一般是指ArrayList,LinkedList和底层实现为数

  • java编程abstract类和方法详解

    抽象类和抽象方法常用知识点: (1)抽象类作为被继承类,子类必须实现抽象类中的所有抽象方法,除非子类也为抽象类. 也就是说,如果子类也为抽象类,可以不实现父类中的抽象方法.但是,如果有一个非抽象类 继承于抽象子类,需要实现抽象子类,抽象子类的抽象父类的所有抽象方法,新帐旧账一起算. (2)抽象类不能用final进行修饰. (3)抽象类不能被实例化,也就是说你用的时候不能通过new关键字创建. (4)抽象类中可以包含抽象方法和非抽象方法,抽象方法没有方法体,也就是没有具体实现, 只是定义了有什么功

  • Java线程三种命名方法详解

    这篇文章主要介绍了Java线程三种命名方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.实例化一个线程对象 Thread t = new Thread(); t.setName("甲"); 2.实例化一个线程对象的同时,通过构造方法对线程进行命名 Thread(Runnable r, String name) Thread t = new Thread(() -> {}, "甲"); 3.使用自定义

  • 在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解

    一.下载MySQL数据库并进行安装和配置 下载地址:https://dev.mysql.com/downloads/installer/ 二.下载JDBC连接器 下载地址:mysql-connector-java-8.0.22 下载好压缩包并解压后找到mysql-connector-java-8.0.22.jar文件放在自己指定的路径下. 三.在项目中导入jar包 用于测试数据库连接的测试类Test.java代码: import java.sql.Connection; import java.

  • Java并发编程之Exchanger方法详解

    简介 Exchanger是一个用于线程间数据交换的工具类,它提供一个公共点,在这个公共点,两个线程可以交换彼此的数据. 当一个线程调用exchange方法后将进入等待状态,直到另外一个线程调用exchange方法,双方完成数据交换后继续执行. Exchanger的使用 方法介绍 exchange(V x):阻塞当前线程,直到另外一个线程调用exchange方法或者当前线程被中断. x : 需要交换的对象. exchange(V x, long timeout, TimeUnit unit):阻塞

随机推荐