环境

操作系统:win10
log4j2版本: 2.11.0

准备

下载jar

官网https://logging.apache.org/log4j/2.x/download.html

把jar包放入到项目中去

开始使用

假设我们要使用log4j2,我们一般是先声明成一个静态成员变量:

private static final Logger logger = LogManager.getLogger(MyApp.class);
// 或者
private static final Logger logger = LogManager.getLogger(MyApp.class.getName());

声明好logger后,我们就可以开始使用它了。

假设我们有这么一个程序:

package test;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Hello {

    private static Logger logger = LogManager.getLogger(Hello.class.getName());

    public void getHello() {

        logger.entry();
        logger.trace("我是trace");
        logger.info("我是info信息");
        logger.error("我是error");
        logger.fatal("我是fatal");

        logger.trace("退出程序.");
        logger.exit();
    }

    public static void main(String[] args) {
        new Hello().getHello();
    }
}

如果没有自定义配置文件,执行上面的方法后,在控制台显示如下:

10:45:05.641 [main] ERROR test.Hello - 我是error
10:45:05.644 [main] FATAL test.Hello - 我是fatal

从结果上看出,只有>=error级别的日志打印出来了。 
这是因为Log4j有一个默认的配置,它的日志级别是ERROR,输出只有控制台。 
如果我已经定义好了日志,我把日志级别改成了TRACE,输出会变成下面这样:

10:48:21.326 [main] TRACE test.Hello - Enter
10:48:21.330 [main] TRACE test.Hello - 我是trace
10:48:21.331 [main] INFO  test.Hello - 我是info信息
10:48:21.331 [main] ERROR test.Hello - 我是error
10:48:21.331 [main] FATAL test.Hello - 我是fatal
10:48:21.331 [main] TRACE test.Hello - 退出程序.
10:48:21.331 [main] TRACE test.Hello - Exit

配置文件

log4j2默认下载包里是没有配置文件的。下面这个配置文件等于缺省配置: 
https://logging.apache.org/log4j/2.x/manual/configuration.html

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

只需要把上面level="error"改为level="trace"就可以,看到刚才的效果!

由于这篇是简单使用,就讲这些,下篇接着讲。

Log4j 2使用教程一【入门】的更多相关文章

  1. Spring MVC 教程,快速入门,深入分析

    http://elf8848.iteye.com/blog/875830/ Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门  资源下载: ...

  2. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...

  3. js-json教程从入门到使用

    json教程从入门到使用 2.json例子: var today_data={"city":"上海","area":"6400&q ...

  4. SQLAlchemy 教程 —— 基础入门篇

    SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...

  5. TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  6. mxGraph进阶(一)mxGraph教程-开发入门指南

    mxGraph教程-开发入门指南 概述 mxGraph是一个JS绘图组件适用于需要在网页中设计/编辑Workflow/BPM流程图.图表.网络图和普通图形的Web应用程序.mxgraph下载包中包括用 ...

  7. Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)

    1. 框架代码 用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 Python 源文件, 在代码编辑器中,输入以下框 ...

  8. Android Studio2.0 教程从入门到精通Windows版

    系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android Studio2 ...

  9. Android Studio2.0 教程从入门到精通Windows版 - 入门篇

    http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...

  10. Kivy crash 中文教程 实例入门 1. 第1个应用 Kivy App (Making a simple App)

    1.  空白窗口 在 PyCharm 中创建一个名为 TutorialApp 的项目,然后在该项目中新建了个名为 tutorial_app.py 的 Python 源文件,在 PyCharm 的代码编 ...

随机推荐

  1. JavaScript(一)

    JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...

  2. day13_H5_CSS_1

    一.标签.HTML是可以被浏览器解析的一套规则 1.a标签:他是主动闭合标签,表现形式<a href="http://www.baidu.com">baidu<a ...

  3. CSS3_边框 border 详解_一个 div 的阴阳图

    (面试题) 怎么样通过 CSS 画一个三角形: 1. 元素的 width 和 height 设置为 0 2. 边框 足够大     3. 需要的三角形的部分, border-top-color 设置为 ...

  4. (87)Wangdao.com第二十天_JavaScript document 节点对象

    document 节点对象, 代表整个文档,每张网页都有自己的 document 对象. window.document 当浏览器开始加载文档时就存在了 正常的网页使用 document 或者 win ...

  5. [LeetCode] Swim in Rising Water 在上升的水中游泳

    On an N x N grid, each square grid[i][j] represents the elevation at that point (i,j). Now rain star ...

  6. 黑盒测试实践——day05

    一.任务进展情况 今天主要对web系统的“员工管理模块”和“招聘管理模块”进行测试.测试用例选取之前已经做好的excel文件.       二.存在的问题

  7. sql server里中自增长的ID重新开始排

    dbcc checkident('tablename',reseed,0); 执行:dbcc checkident('TableA',reseed,0); 执行结束:中途报了几次插入重复键. 结论:用 ...

  8. 洛谷P1996 约瑟夫问题【链表】

    题目:https://www.luogu.org/problemnew/show/P1996 题意: 约瑟夫环.每次取出第m个,第2m个...... 思路: 链表维护.[感觉很少有用到链表.]非常经典 ...

  9. webpack 知识点

    安装 webpack npm install -g webpack npm install -g webpack-cli@2.x 初始化项目 npm init -y npm install --sav ...

  10. 自动化脚本测试,postman使用沉淀

    // 服务器地址 var server = 'XXXXXXXXXXXX'; //秘钥Key var secretKey = 'XXXXXXXXXXXX'; //获取当前时间 function crea ...