在实际项目中,一般会采用读取配置文件的方式进行log控制,最常用的是log4j.properties
第一步: 新建一个java工程,名字就叫: logExample1
第二步: 在src目录下新建log4j.properties文件
代码如下:
#define the root logger
#appender's name is file and the level is INFO
log4j.rootLogger = INFO, file
log4j.appender.file = org.apache.log4j.RollingFileAppender
#the output file's name and directory
log4j.appender.file.File = ./out.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
第三步:创建MyApp类,代码如下
package com.noodle.util;
import org.apache.log4j.Logger;
import com.noodle.pojo.Movie;
public class MyApp {
static Logger logger = Logger.getLogger(MyApp.class);
public static void main(String[] args){
logger.info("application begin in main");
Movie movie = new Movie();
movie.watchIt();
logger.info("application end in main");
}
}
第四步:创建Movie类, 代码如下
package com.noodle.pojo;
public class Movie {
static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(Movie.class);
public void watchIt(){
logger.warn("Watch movie");
}
}
第五步: 结果在logExample1目录下生成out.log里面的内容是:
INFO [main] (MyApp.java:12) - application begin in main
WARN [main] (Movie.java:7) - Watch movie
INFO [main] (MyApp.java:17) - application end in main
如果要跟踪一个事件,单独为这个事件,设定日志。 那么需要一个Logger instance 穿插于各个class之间,这样在properites里如何去写呢?
log4j.properties:
#define the root logger
#appender's name is file and the level is INFO
log4j.rootLogger = INFO, file
log4j.appender.file = org.apache.log4j.RollingFileAppender
#the output file's name and directory
log4j.appender.file.File = ./out.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.logger.eventLogName = INFO, eventlog
#Properties are case sensitive.
#log4j.logger.EVENTLOGNAME = INFO, eventlog
#that is unable to print the log messages in the console.
log4j.appender.eventlog = org.apache.log4j.ConsoleAppender
log4j.appender.eventlog.layout = org.apache.log4j.PatternLayout
log4j.appender.eventlog.layout.ConversionPattern = %d{dd-MM-yyyy}, %d{HH:mm:ss}, %-5.5p, %m %n
MyApp.java
package com.noodle.util;
import org.apache.log4j.Logger;
import com.noodle.help.AppConstant;
import com.noodle.pojo.Movie;
public class MyApp {
static Logger logger = Logger.getLogger(MyApp.class);
static Logger eventlogger = Logger.getLogger(AppConstant.EVENT);
public static void main(String[] args){
logger.info("application begin in main");
eventlogger.info("this is the begin of the eventlog");
Movie movie = new Movie();
movie.watchIt();
eventlogger.info("this is the end of the eventlog");
logger.info("application end in main");
}
}
Movie.java
package com.noodle.pojo;
public class Movie {
static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(Movie.class);
public void watchIt(){
logger.warn("Watch movie");
}
}
定义一个AppConstant.java
package com.noodle.help;
public class AppConstant {
public final static String EVENT = "eventLogName";
}
这样,去运行以下,得到的结果是:
在out.log日志里输出:
INFO [main] (MyApp.java:12) - application begin in main
INFO [main] (MyApp.java:13) - this is the begin of the eventlog
WARN [main] (Movie.java:7) - Watch movie
INFO [main] (MyApp.java:16) - this is the end of the eventlog
INFO [main] (MyApp.java:17) - application end in main
而同时在控制台里输出了:
18-08-2009, 20:37:20, INFO , this is the begin of the eventlog
18-08-2009, 20:37:20, INFO , this is the end of the eventlog
Enjoy it!
分享到:
相关推荐
本篇文章将深入探讨Log4j的多个简单实例,帮助你理解和掌握其基本用法。 首先,Log4j由三个主要组件构成:配置器(Configuration)、日志器(Logger)和布局(Layout)。配置器定义了日志信息的输出格式和位置;...
这篇博客"Log4j 把不同包的日志打印到不同位置"可能详细解释了如何利用Log4j配置来实现特定包的日志定向输出,以便于管理和分析来自不同模块的日志信息。 在Java应用中,我们常常会遇到多个模块或者不同包的类同时...
本篇文章旨在深入探讨 Log4j 的架构设计、基本用法以及性能特点。 #### 二、Log4j 的核心组件 Log4j 的设计围绕三大核心组件展开:**Logger**、**Appender** 和 **Layout**。这三个组件相互协作,确保日志记录既...
本篇文章将深入探讨Log4j的使用,并通过实例进行讲解。 ### 1. Log4j的基本概念 - **Logger**: 日志器是Log4j的核心组件,负责生成日志消息。你可以根据需要创建多个Logger,每个Logger都有自己的名字和日志级别。...
本篇将详细介绍Log4j的配置文件及其常用属性,旨在帮助初学者快速掌握Log4j的配置方法。 首先,Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,用于定义日志输出的行为。这里我们主要讨论基于文本格式的`...
本篇文章将详细探讨Log4j 配置邮件发送的相关知识点。 1. **邮件通知功能** Log4j 提供了SMTPAppender,用于在特定的日志事件发生时发送电子邮件通知。这非常有用,因为开发者可以在问题发生时立即得到警报,无需...
本篇将详细介绍如何利用Log4j将应用日志输出到Flume,以便进行集中管理和分析。 首先,Log4j是一款Java日志框架,它提供了灵活的日志记录功能,允许开发者根据需求定制日志级别、格式和输出目的地。Log4j的配置文件...
这篇教程将深入浅出地介绍如何使用log4j进行日志记录。 首先,log4j是一个开源的日志记录工具,由Apache软件基金会开发,主要服务于Java应用程序。它的核心组件包括Logger(日志器)、Appender(输出端)和Layout...
这篇日志管理系统简单使用说明将介绍Log4j的三个核心组件:Loggers、Appenders和Layouts,帮助你理解如何在Java应用程序中有效地使用Log4j进行日志管理。 1. **Loggers** - Loggers是日志记录的核心,它们定义了...
这篇博文主要探讨的是如何配置Log4j以改变日志输出的位置。 首先,我们要理解Log4j的核心配置文件——`log4j.properties`。这个文件使用键值对的形式定义了日志的行为和输出设置。在`log4j.properties`中,有以下几...
这篇博客主要介绍了如何开始使用Log4j2,Log4j2是Apache的一个开源日志框架,它提供了灵活的日志记录功能,比其前一代Log4j更加高效和功能强大。通过学习Log4j2,开发者可以更好地管理和调试他们的应用程序,以便于...
本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...
本篇将详细探讨如何结合Spring AOP和Log4j实现动态日志记录。 Spring AOP是Spring框架的一个重要特性,它允许我们以一种声明式的方式处理横切关注点,如日志、事务管理等。AOP的核心概念包括切面(Aspect)、通知...
本篇文章将探讨如何根据需求自建Appender,扩展Log4j框架。 在Log4j中,Appender是负责将日志信息输出到特定目的地的组件。默认情况下,Log4j提供了多种Appender,如ConsoleAppender(控制台输出)、FileAppender...
这篇教程将带你深入理解并掌握如何配置Log4j,以便在你的Java项目中有效地使用它。 首先,我们要了解Log4j的基本组件: 1. **Logger**: 日志记录器,它是日志的起点,负责生成日志信息。一个应用可以有多个logger...
这篇博文将深入探讨Log4j的配置与使用。 首先,我们要理解Log4j的基本结构。Log4j包含三个主要部分:Logger(日志器)、Appender(输出端)和Layout(格式化器)。Logger负责生成日志事件,Appender决定这些事件将...
本篇将详细介绍如何在Spring Boot项目中整合Log4j2,以实现高效、灵活的日志管理。 首先,我们创建一个名为"spring-boot-log4j2-example"的项目,这通常是一个Maven或Gradle工程。Spring Boot项目的基础结构包括`...
本篇将深入探讨Log4j的配置文件——`log4j.properties`。 ### 1. 日志级别 Log4j提供了五个级别的日志记录,从低到高分别是:DEBUG、INFO、WARN、ERROR和FATAL。开发者可以根据需要设置不同的级别,过滤不必要的...
本篇文章将深入探讨如何在Spring 5中整合Log4j2日志工具,以实现高效、灵活的日志管理。 首先,我们来理解Spring 5和Log4j2的基本概念。Spring 5是Spring框架的一个主要版本,提供了更强大的功能和性能优化,支持...
本篇文章将详细解析Lo4j配置文件,帮助开发者更好地理解和利用这一强大的工具。 一、Log4j的概述与重要性 在Java开发中,日志记录扮演着至关重要的角色,它能够帮助我们追踪程序运行状态,定位错误和异常,进行性能...