`
supben
  • 浏览: 330141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态生成Log

 
阅读更多

我们在项目中可能需要一些日志文件。是动态生成的(配置文件是静态的,打印全局的log)。比如我们按照类别来收集用户输入的内容。一个类别一天一个文件。 这时候就可以用代码调用Log4j来生成

 

我们先自定义的LogFactory

package com.bj58.zhaoren.sou.utils;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.spi.LoggerFactory;

/**
 * 自定义日志工厂
 * @date 2016年3月24日  
 * @author shencl
 */
public class MyLogFactory implements LoggerFactory {
	
	private static Map<String, MyLogFactory> map = new ConcurrentHashMap<String, MyLogFactory>(); 

	private String path;

	private MyLogFactory() {
	}
	
	private MyLogFactory(String path) {
		this.path = path;
	}

	/**
	 * 保证一个路径只产生一个MyLogFactory
	 */
	public synchronized static MyLogFactory getInstance(String path){
		if (map.get(path) != null) {  
            return map.get(path);  
        }  
		return new MyLogFactory(path);
	}
	
	@Override
	public Logger makeNewLoggerInstance(String name) {
		Logger log = Logger.getLogger(name);
		log.setLevel(Level.INFO);
		Layout layout = new PatternLayout("[%d{MM-dd HH:mm:ss,SSS}] %c{10} - %m%n");
		try {
			if (path != null && !path.equals("")) {
				DailyRollingFileAppender fileappender = new DailyRollingFileAppender(layout, path, "'.'yyyy-MM-dd");
				log.addAppender(fileappender);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return log;
	}
}

 

然后看怎么调用

package com.bj58.zhaoren.sou.utils;

import org.apache.log4j.Logger;

/**
 * @author shencl
 */
public class LogTest {
	private static String path = "d:/logs/query/skill.log";
	
	public static void main(String[] args) {
		Logger l = Logger.getLogger(LogTest.class.getName(), MyLogFactory.getInstance(path));
		l.info("aaaaa");
	}
}

 

日志文件在 D:\logs\query\skill.log

输出      [03-15 11:31:23,131] com.bj58.zhaoren.sou.utils.LogTest - aaaaa

 

0
2
分享到:
评论

相关推荐

    名字生成log脚本exe

    名字生成log脚本exe

    自动ping并生成log报告

    自动ping并生成log报告。 默认是ping天津电信DNS,可右键单击后编辑,把219.150.32.132改成你需要去ping的IP即可。 注:尽量不要改文件名和其他参数。

    NSIS安装过程生成log,卸载过程调用log卸载文件

    标题 "NSIS安装过程生成log,卸载过程调用log卸载文件" 涉及的是使用NSIS(Nullsoft Scriptable Install System)创建安装程序时如何生成日志并在卸载过程中利用这些日志来卸载文件的知识。NSIS是一个开源的Windows...

    java 生成批量log日志

    利用java代码实现 生成批量log日志文件

    log4net使用代码配置,实现动态文件打印

    以下是一个简单的例子,展示如何使用代码配置`log4net`,创建一个动态输出到不同文件的日志系统: ```csharp using log4net; using log4net.Config; using log4net.Appender; using log4net.Layout; // 初始化log4...

    log4j(二):动态配置日志输出路径

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能和灵活的配置,使得我们可以根据需要动态地改变日志的输出路径。本文将深入探讨如何在Log4j中实现日志输出路径的动态配置。 首先,我们要理解Log4j...

    log4j生成文件及文件夹

    本文将深入探讨如何利用Log4j生成动态的日志文件名以及动态创建文件夹,帮助开发者更好地管理和分析应用程序的运行状态。 Log4j是一款功能强大的开源日志组件,它允许程序员灵活地控制日志信息的输出级别,如DEBUG...

    log4net 配置 根据日期生成 文件 根据 分类 (INFO、ERROR) 生成文件

    ### log4net 配置详解:根据日期生成文件与按分类(INFO、ERROR)生成文件 在软件开发过程中,日志记录是一项重要的功能,它能够帮助开发者追踪程序运行时的状态,定位错误并进行调试。log4net是.NET平台下非常流行的...

    log4j 动态配置

    ### Log4j动态配置详解 #### 一、Log4j简介与重要性 Log4j是Apache的一个开源项目,用于实现日志记录功能。它提供了一种强大的机制来控制日志的生成,使得日志信息可以被输出到不同的目的地,如控制台、文件等,...

    log4cpp(添加按日期生成日志类)

    "Log4cpp(添加按日期生成日志类)" 提示我们这是一个关于Log4cpp的项目,而且已经进行了扩展,增加了按照日期生成日志文件的功能。Log4cpp是C++的一个日志记录库,它借鉴了Java中的log4j框架,提供了灵活的日志管理...

    连续PING多个IP地址,生成log文件

    连续PING多个IP地址,生成log文件,可以用于检测局域网内一个网段都有哪些IP在使用!

    C#生成带Log的二维码图片.pdf

    在文档中提到的“logUrl”变量存储了Logo图片的路径。 2. 引用必要的库和命名空间:文档中提到了需要引用zxing.dll,这通常意味着我们可能需要使用一些外部的类库来辅助完成二维码的生成和修改。同时,代码中使用了...

    动态页面生成静态页面实例

    动态页面生成静态页面是一种常见的网站优化技术,它将原本由服务器动态生成的HTML内容转换为预先编译好的静态HTML文件,以提高网站的访问速度和搜索引擎优化(SEO)。本实例将探讨这一技术,并通过提供的文件列表来...

    Wpf log4net 日志

    这段配置中,我们定义了一个名为"RollingFileAppender"的滚动文件追加器,设置日志文件存储路径为"logs"目录下的"log.txt",并按照日期(年-月-日)滚动生成新的日志文件。`datePattern`属性指定了文件名格式,`...

    VS2015编译的log4cpp动态库

    **VS2015编译的log4cpp动态库** log4cpp是一个广泛使用的C++日志记录库,它提供了一种灵活的方式来管理和记录应用程序的日志信息。在C++编程中,日志管理是至关重要的,它可以帮助开发者追踪程序运行状态、定位错误...

    log4j生成带时间戳的日志文件(包括extras包以及简单demo)

    本文将深入探讨如何使用Log4j生成带有时间戳的日志文件,同时还会涉及到extras包的使用以及一个简单的示例。 1. **Log4j基本概念** - **日志级别**:Log4j支持多种日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    在Tomcat中配置Log4j,可以实现按照文件大小生成日志文件,如`catalina.out`,从而避免单个日志文件过大导致的管理不便。 首先,我们需要理解Log4j的工作原理。Log4j主要包括三个核心组件:Logger(日志器)、...

    Tomcat下使用Log4j接管生成日志文件

    本文将详细介绍如何在Tomcat服务器环境下使用Log4j接管生成日志文件。 首先,了解Log4j的核心组件: 1. **Logger**:负责生成日志信息,是使用最频繁的部分。 2. **Appender**:负责将日志信息输出到指定的目标,如...

Global site tag (gtag.js) - Google Analytics