JAVA程序开发,经常用到日志输出,在一个所谓的软件公司里大多会有自己一套配置风格,读取配置文件再对日志属性进行初始化,这样固然好,但有时可能并不需要小题大做,然log4j这个包一定会经常用到,以下就是一个简单应用。前题,下载一个log4j的包,本人用log4j-1.2.9.jar。 新建一个java项目,内容如下,根据实际需要改本地的包名和类名。
-
-
-
-
-
-
-
-
-
-
-
-
package app;
-
-
import java.io.FileInputStream;
-
import java.util.Properties;
-
import org.apache.log4j.Logger;
-
import org.apache.log4j.PropertyConfigurator;
-
-
-
public class logjTest {
-
public static final Logger logger = Logger.getLogger(logjTest.class);
-
public static void main(String args[])throws Exception{
-
String configFile = "log4j.properties";
- PropertyConfigurator.configure(configFile);
-
logger.info("测试log4j之包的使用!");
-
Properties perties = new Properties();
-
FileInputStream fis = new FileInputStream(configFile);
- perties.load(fis);
-
String str=perties.getProperty("log4j.rootLogger");
-
logger.info("测试获取key值,如log4j.rootLogger="+str);
- }
- }
/**
* filename : MiProperty.java
* Title : 北京minstar软件工作室
* Description: 关于log4j包的最简单应用
* @Copyright : Copyright (c) 2008,北京minstar软件工作室
* Company : 北京minstar软件工作室
* @author : Zhao.Jian
* Date : 2007-8-16
* @version 1.0.0.0
* @Development Environment : Eclipse 3.1.0
*/
package app;
import java.io.FileInputStream;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class logjTest {
public static final Logger logger = Logger.getLogger(logjTest.class);
public static void main(String args[])throws Exception{
String configFile = "log4j.properties";
PropertyConfigurator.configure(configFile);
logger.info("测试log4j之包的使用!");
Properties perties = new Properties();
FileInputStream fis = new FileInputStream(configFile);
perties.load(fis);
String str=perties.getProperty("log4j.rootLogger");
logger.info("测试获取key值,如log4j.rootLogger="+str);
}
}
属性文件名:log4j.properties,内容:
- ### 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{ABSOLUTE} %5p %c{1}:%L - %m%n
- #%d{ABSOLUTE} %5p %c{1}:%L - %m%n
-
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
-
-
- ### direct messages to file hibernate.log ###
-
#log4j.appender.file=org.apache.log4j.FileAppender
-
#log4j.appender.file.File=hibernate.log
-
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
-
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
-
- ### set log levels - for more verbose logging change 'info' to 'debug' ###
-
-
log4j.rootLogger=debug,R,stdout
-
#####log4j.logger.net.sf.hibernate=info
-
- ####????
-
log4j.appender.R=org.apache.log4j.RollingFileAppender
-
log4j.appender.R.File=logs/logtest.log
-
log4j.appender.R.MaxFileSize=1000KB
-
log4j.appender.R.MaxBackupIndex=5
-
log4j.appender.R.layout=org.apache.log4j.PatternLayout
-
log4j.appender.stdout.layout.ConversionPattern=%d [%p] %c -%m%n
-
#log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
-
log4j.appender.R.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}] %p %t %c - %m%n
-
-
- ### log just the SQL
-
#log4j.logger.net.sf.hibernate.SQL=debug
-
- ### log JDBC bind parameters ###
-
log4j.logger.net.sf.hibernate.type=info
-
- ### log schema export/update ###
-
log4j.logger.net.sf.hibernate.tool.hbm2ddl=debug
-
- ### log cache activity ###
-
#log4j.logger.net.sf.hibernate.cache=debug
-
- ### enable the following line if you want to track down connection ###
- ### leakages when using DriverManagerConnectionProvider ###
-
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider=trace
-
-
#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
-
#log4j.appender.SOCKET.RemoteHost=localhost
-
#log4j.appender.SOCKET.Port=5001
-
#log4j.appender.SOCKET.LocationInfo=true
- # Set up for Log Facter 5
-
#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
-
#log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%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{ABSOLUTE} %5p %c{1}:%L - %m%n
#%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug,R,stdout
#####log4j.logger.net.sf.hibernate=info
####????
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=logs/logtest.log
log4j.appender.R.MaxFileSize=1000KB
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%p] %c -%m%n
#log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.R.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}] %p %t %c - %m%n
### log just the SQL
#log4j.logger.net.sf.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.net.sf.hibernate.type=info
### log schema export/update ###
log4j.logger.net.sf.hibernate.tool.hbm2ddl=debug
### log cache activity ###
#log4j.logger.net.sf.hibernate.cache=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider=trace
#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
#log4j.appender.SOCKET.RemoteHost=localhost
#log4j.appender.SOCKET.Port=5001
#log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
#log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.properties中几处值得关注。
1:log4j.appender.R.File=logs/logtest.log
日志输出路径及命名,以下为相对路径法,根据实际情况改之。
2:log4j.appender.R.MaxFileSize=1000KB
每个日志文件大小。
3:log4j.appender.R.MaxBackupIndex=5
每生成多少个日志滚动,会生成一些logtest.log1, logtest.log2,但不会有logtest.log6,如果配置成10,不会有logtest.log11。
4:log4j.appender.R.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}] %p %t %c - %m%n
日志输出时日期的风格之类的,通常我不改,其它还有一些属性设置,网上有很多文章介绍,此处以高效,简洁,共享为宗旨,相信该文值得再次参考。
分享到:
相关推荐
在Java开发过程中,为了实现日志管理,我们通常会使用如log4j2这样的日志框架。Log4j2是一个强大的、灵活的日志系统,它提供了丰富的配置选项和高性能的日志记录能力。当我们的应用程序需要将日志信息存储在数据库中...
本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...
配置完成后,当应用程序中的Log4j被调用时,生成的日志将会自动发送到指定的Kafka主题。这种方式非常适合大规模分布式系统,因为它能够确保日志的实时性和可靠性。 总结一下,Kafka Java Log4j的整合使日志处理变得...
Log4j作为一款优秀的日志管理工具,被广泛应用于各种Java应用中。本文将基于给定文件信息中的描述,详细介绍如何对Log4j进行扩展以支持Struts、iBatis以及自定义日志输出。 #### 二、Log4j配置详解 ##### 2.1 配置...
Java中的Log4j 2日志框架是一款广泛应用于企业级应用开发的日志处理工具,它在Log4j 1.x的基础上进行了大量的优化和改进,提供了更高效、更灵活的日志记录功能。Log4j 2.23.0是其最新的稳定版本,包含了对性能、安全...
标题"Log4j简单使用"表明我们即将探讨的是日志记录库Log4j的基础应用。Log4j是Apache软件基金会开发的一个开源项目,它为Java应用程序提供了一个灵活的日志系统,允许开发者自定义日志级别、输出格式以及存储位置等...
### Java中log4j的使用方法详解 #### 一、log4j简介 Log4j是Apache的一个开源项目,用于实现日志记录功能。它提供了一种高度灵活的日志记录框架,可以方便地控制日志的输出级别、格式以及目标(如控制台、文件等)...
Log4J是Apache软件基金会的一个开源项目,提供了一个强大的、灵活的日志记录工具,广泛应用于Java应用中。本篇将详细介绍如何在Java项目中引入并使用Log4J。 首先,要使用Log4J,你需要在你的项目中引入Log4J的jar...
在Java代码中使用Log4j非常简单,首先要获取一个Logger实例,然后通过调用相应级别的方法输出日志。例如: ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger...
Log4j是Apache提供的一个流行的日志记录工具,广泛应用于Java工程中。它可以帮助开发者记录程序的执行过程,方便BUG的追踪和程序的优化。在Java工程中使用Log4j可以提高程序的可读性和可维护性。 下载和配置Log4j ...
- **itcastLog4J**:这个工程是一个简单的Java应用,包含了一个配置文件和使用Log4j的Java类。通过查看源代码,我们可以看到如何在实际项目中应用Log4j,了解其在不同场景下的使用。 **6. 进阶应用** Log4j还可以与...
Log4j是Apache组织提供的一款强大且灵活的日志框架,广泛应用于各种Java项目。本篇文章将深入探讨Log4j的参数配置方法,以及ConversionPattern参数的格式含义。 首先,Log4j的核心在于其配置文件,一般命名为`log4j...
总的来说,Log4j是Java开发中不可或缺的工具,它能帮助开发者有效地监控和调试应用程序。理解并掌握Log4j的基本使用和配置,能够提高问题排查的效率,也有助于提升代码的可维护性。希望这个例子和讲解能帮助你更好地...
Log4j 是 Apache 的一个开源项目,被广泛应用于 Java 应用程序的日志记录中。通过 Log4j,开发者可以轻松控制日志信息的输出目的地、格式以及级别。这使得日志的管理变得更加灵活和高效。 #### 二、Log4j 配置文件...
Log4j是Java编程语言中广泛使用的日志记录框架,其设计目标是提供一个灵活、高效且易于配置的日志系统。这个压缩包包含了Log4j的多个版本,具体提到的是"log4j-1.2.4.jar",这是一个较早的版本。Log4j的各个版本在...
**Java中的Log4j:日志管理神器** ...总之,Log4j作为Java中的日志利器,其强大功能和易用性使得开发者能够高效地管理和分析应用日志,同时,理解和掌握Log4j的配置和使用也是每个Java开发者必备的技能之一。
首先,log4j是Apache软件基金会的一个项目,它提供了一个灵活的日志框架,用于在Java应用程序中生成日志。log4j的核心概念包括Appender(输出目的地,如控制台、文件、数据库等)、Layout(格式化输出内容)和Logger...
log4j和log4j2日志应用文档 Log4j是一种广泛使用的Java日志框架,提供了灵活的日志记录和管理机制。本文档将详细介绍Log4j和Log4j2的日志应用,包括日志使用和要点相关内容介绍。 配置文件解析 Log4j配置文件的...
在这个场景中,我们使用了SLF4J(Simple Logging Facade for Java)作为日志抽象层,它为各种日志框架提供了统一的API,而SLF4J-log4j12-1.5.0.jar和slf4j-api-1.5.0.jar正是SLF4J与Log4j之间的桥梁,使得我们可以...