日志架构log4j基本使用

[toc]


日志架构log4j基本使用

配置文件

###############################################
# 以下的配置文件都是以log4j.开头
# 最最重要就是第一个log4j.rootLogger,指定log4j日志的输出级别(目的地)
# log4j.rootLogger=INFO,stdout,file意思为:
# 日志可以输出INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file
#
# 常见的日志输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命错误)
#  日志输出的顺序:和日志输出级别一致,即配置为一个级别,输出的内容只能是该级别及其以上级别的信息
#  INFO(输出的包括 INFO WARN ERROR FATAL)
#  ERROR(ERROR FATAL)
#  所以,一般情况下:在开发,测试环境中,日志的级别为DEBUG;在生产环境中,日志级别为INFO
#
#  输出目的地:
#     日志输出的各种各样的目的地,都是通过Appender来进行实现追加的
# 我们在appender中看到的PatternLayout的格式如下:
#
#%m   输出代码中指定的消息
#%n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%p   输出优先级,即日志级别:DEBUG,INFO,WARN,ERROR,FATAL
#%r   输出自应用启动到输出该log信息耗费的毫秒数
#%c   输出所属的类目,通常就是所在类的全名
#%t   输出产生该日志事件的线程名
#%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921
#%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) log4j配置详解 - stone - stonexmx 的博客
# 常见的Appender
# ConsoleAppender
# FileAppender
#
#
###############################################
log4j.rootLogger=INFO,stdout,R, E

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,SSS} [%t] [%c] [%p] - %m%n

log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ./logs/spider.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

### 输出到日志文件 ###
# 每天生成一个新的日志文件
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = ./logs/log.log
log4j.appender.R.Append = true
# DEBUG级别及以上的日志信息输出到./logs/log.log中
log4j.appender.R.Threshold = DEBUG
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n

### 保存异常信息到单独文件 ###
# 每天生成一个新的日志文件
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ./logs/error.log
log4j.appender.E.Append = true
# ERROR级别及以上的日志信息输出到./logs/log.log中
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n

程序代码

package com.uplooking.bigdata.spider;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 使用Log4j步骤:
 *      1.引入maven的依赖
 *      2.将log4j.properties或log4j.xml配置文件添加进项目的classpath下面
 *
 * log4j的入口类就是Logger
 */
public class Log4jTest {

    @Test
    public void testLog4j() {
        Logger logger = LoggerFactory.getLogger(Log4jTest.class);
        logger.debug("日志-debug信息");
        logger.info("日志-info信息");
        logger.warn("日志-warn信息");
        logger.error("日志-error信息");
    }
}

测试

执行程序代码,输出如下:

2018-03-29 15:31:51,164 [main] [com.uplooking.bigdata.spider.Log4jTest] [INFO] - 日志-info信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [WARN] - 日志-warn信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [ERROR] - 日志-error信息

同时也可以看到生成的日志文件log.logerror.log

原文地址:http://blog.51cto.com/xpleaf/2092496

时间: 2024-08-30 07:40:57

日志架构log4j基本使用的相关文章

开源日志技术log4j

老师的总结: 日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对已经copy过来的jar包,点击右键,然后执行下图操作, 项目中就会多出一个引入外部Library的项目 003.在src目录下创建一个名称为log4j.properties文件 004.编写,粘贴已经写好的配置文件内容,编码方式可以做下修正.对配置文件点击右键→属性→other→ut

java中的日志组件-log4j

1.为什么使用日志组件 Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT的事件记录器:还可以控制每一条日志输出格式.此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通过一个配置文件来灵活进行配置,而不需要修改应程序代码. 在应用程序中输出日志有3个目的: 监视代码中变量的变化情况,把数据周期性记录到文件中供其他应用进行统计分析工作: 跟踪代码运行时轨迹,作

软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log

log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 1定义 log4j--log for java(java的日志) 在强调可重用组件开发的今天,除了

【原创设计分享】面向服务的分布式日志架构

概述 对于日志的记录,无论是Log4Net也好,NLog日志也罢,提供的功能都比较全面,并且久经历史考验,但是基于服务的日志架构并不采用他们其中的任何一个框架来实现,即使他们可以处理的更好,该架构主要用来处理对于多台服务器,并且每台服务器下的有许多不同的站点,集中对日志进行处理,包含需要记录的审计日志和系统日志,统一交由一个服务来实现对日志的存储.并且可通过相应的工具进行查看日志的实时监控情况. 整体设计图 设计思想 根据整体设计图不难看出对于实现很简单. 首先,写一个WCF服务,里面提供接口并

基于服务的日志架构

背景 对于日志的记录,无论是Log4Net也好,NLog日志也罢,提供的功能都比较全面,并且久经历史考验,但是基于服务的日志架构并不采用他们其中的任何一个框架来实现,即使他们可以处理的更好,该架构主要用来处理对于多台服务器,并且每台服务器下的有许多不同的站点,集中对日志进行处理,包含需要记录的审计日志和系统日志,统一交由一个服务来实现对日志的存储.并且可通过相应的工具进行查看日志的实时监控情况. 整体设计图 原理 我相信主要我画的不太毛糙的话,基本原理也都可以看得懂,主要的原理实现起来也很简单.

海量日志下的日志架构优化:filebeat+logstash+kafka+ELK

前言: 实验需求说明 在前面的日志收集中,都是使用的filebeat+ELK的日志架构.但是如果业务每天会产生海量的日志,就有可能引发logstash和elasticsearch的性能瓶颈问题.因此改善这一问题的方法就是filebeat+logstash+kafka+ELK,也就是将存储从elasticsearch转移给消息中间件,减少海量数据引起的宕机,降低elasticsearch的压力,这里的elasticsearch主要进行数据的分析处理,然后交给kibana进行界面展示 实验架构图:

日志管理-log4j与slf4j的使用

一.概述 1.log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 2.slf4j: SLF4J,即简单日志门面(Simple Logging Facade

配置日志框架——Log4j

Log4j作为一个开源的优秀日志框架,被广泛使用,Hibernate和MyBatis都是支持Log4j的,我们只需要引入Log4j的jar包即可. Log4j.properties文件 log4j.rootLogger=info,appender1,appender2 //appender1,appender2这是输出的目标地址,当然可以有多个,在这里只写了两个 log4j.appender.appender1=org.apache.log4j.ConsoleAppender //指定输出类型,

关于日志类Log4j的使用

log4j 的配置 1 #下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是A3,一个是console 2 3 log4j.rootLogger = INFO,A3,CONSOLE 4 5 #日志最低的输出级别 6 log4j.appender.A3.Threshold=INFO 7 log4j.appender.A3.encoding=UTF-8 8 #每天产生一个文件DailyRollingFileAppender 9 log4j.appender.A3 = org.apac