public class LogUtil
{
private static Logger log = Logger.getLogger(LogUtil.class.getName());
private static Handler fileHandler = null;
static
{
try
{
String logfile = (new File(ServiceAccess.getSystemSupportService().getDeployedPar("an-commonsh-ftpcsv-emf").getBaseDir()))
.getAbsolutePath() + File.separator + "log" + File.separator + "ftpcsv%g.log";
// String dirPath = CommonUtil.getDeployedParBaseDir("zxnm01-northbound");
// String logfile = (new File((new File(dirPath)).getParent())).getParent() + File.separator + "log" + File.separator + "tl1" +
// File.separator +"tl1agent_AlarmTrace%g.log";
fileHandler = new FileHandler(logfile, 5000000, 5, true);
// fileHandler = new FileHandler(CommonUtil.getNetNumenHomeDir() + "/ums-svr/log/tl1agent_AlarmTrace%g.log" ,10000,11,true);
fileHandler.setLevel(Level.INFO);
fileHandler.setFormatter(new CustomFormatter());
}
catch(Exception ex)
{
}
log.addHandler(fileHandler);
}
public static void info(String loginfo)
{
log.info(loginfo);
}
}
public class CustomFormatter extends Formatter
{
// 时间
private Date dat = new Date();
// 参数
private Object[] args = new Object[1];
// 消息格式化器
private MessageFormat formatter = null;
// 时间参数
private String format = "{0,date} {0,time}";
// 行分格符
private String lineSeparator = (String)AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
public String format(LogRecord record)
{
StringBuffer sb = new StringBuffer();
dat.setTime(record.getMillis());
args[0] = dat;
StringBuffer text = new StringBuffer();
if(formatter == null)
{
formatter = new MessageFormat(format);
}
formatter.format(args, text, null);
sb.append(text);
sb.append(" ");
String message = formatMessage(record);
sb.append(message);
sb.append(lineSeparator);
printWriterLog(record, sb);
return sb.toString();
}
private void printWriterLog(LogRecord record, StringBuffer sb)
{
if(record.getThrown() != null)
{
try
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
record.getThrown().printStackTrace(pw);
pw.close();
sb.append(sw.toString());
}
catch(Exception ex)
{
}
}
}
}
分享到:
相关推荐
本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...
Java日志规范是Java开发中不可或缺的一部分,它用于记录应用程序运行过程中的各种信息,包括错误、警告、调试信息等,帮助开发者追踪问题、优化性能。本文将深入探讨Java的日志规范,以log4j2.properties、log4j....
在Java代码中,你可以通过LoggerFactory获取一个Logger实例,然后调用其方法记录日志。例如: ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = Logger....
在Java编程中,日志记录是一项非常重要的任务,它帮助开发者追踪程序运行状态,调试问题,以及记录系统事件。在Swing应用中,我们同样可以使用Java内置的`java.util.logging`包来输出错误日志。这篇文档主要讨论了...
3. **编写代码**:在Java类中获取Logger实例,并调用相应的方法记录日志。 ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = Logger.getLogger(MyClass...
在Java开发中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,定位问题,以及进行性能分析。Log4j2是一款广泛使用的日志框架,它提供了灵活且高效的日志记录功能。本示例将详细介绍如何配置并使用...
通过`LogDemo`程序,我们可以了解到在Java中使用`log4j`和`commons-logging`进行日志记录的基本方法,这对于调试、问题排查和性能分析都是至关重要的。在实际开发中,可以根据项目需求调整配置,实现更精细化的日志...
Logger是记录日志的对象,负责接收日志事件并将其传递给适当Appender。Appender是输出日志的地方,如控制台、文件、数据库或网络。Layout则定义了日志信息的格式。Level用于设定日志的严重性级别,包括DEBUG、INFO、...
3. **编写代码**:在`TestLog4j`类中,我们可以创建一个Logger实例,然后使用不同的级别记录日志: ```java import org.apache.log4j.Logger; public class TestLog4j { private static final Logger logger = ...
Log4J是Java编程语言中广泛使用的日志记录框架,由Apache软件基金会开发并维护。它的主要优点在于灵活性和可配置性,允许开发者精确控制日志的输出目的地、格式以及级别,以满足不同项目的需要。 在Log4J中,日志...
Log4j是Java编程语言中广泛使用的日志记录框架,由Apache软件基金会开发。它提供了一个灵活的日志系统,能够帮助开发者记录应用程序运行过程中的各种信息,从调试信息到严重错误,这对于系统的维护、故障排查以及...
在众多的日志框架中,Log4j是Java开发者广泛使用的开源工具,因其强大的功能和灵活性而备受推崇。本文将深入探讨Log4j的核心概念、配置、以及实际应用。 1. **Log4j概述** Log4j是由Apache组织开发的一款用于Java...
下面将详细介绍如何在Tomcat8中替换或更新Log4j来记录日志。 首先,让我们了解一下Log4j。Log4j是Apache软件基金会的一个开源项目,它为Java应用程序提供了一种灵活的日志记录方案。Log4j的优点包括可配置性、性能...
首先,Java中的操作记录通常通过日志系统来实现,如Log4j、SLF4J、Logback等。这些日志框架提供了丰富的接口和配置选项,可以让开发者方便地记录不同级别的日志信息(如DEBUG、INFO、WARN、ERROR等)。例如,使用Log...
- **简单易用**:API设计简洁,易于理解和使用,只需几行代码即可开始记录日志。 - **灵活性**:可以针对不同的部署环境动态选择合适的日志框架,例如在生产环境中使用Log4j,而在开发环境中使用JUL。 在实际...
标题"Java项目记录日志"暗示我们将关注Java环境下的日志处理。Log4j是Java领域广泛使用的日志库,它提供了灵活的日志配置,可以自定义日志级别(如DEBUG、INFO、WARN、ERROR和FATAL),并且支持多种输出方式,如文件...
5. **Logger**:Logger是实际记录日志的对象,每个类或模块都可以有自己的Logger。通过设置Logger的级别,可以控制该类或模块的日志输出级别。 6. **Filter**:Filter允许你在日志输出前进行条件判断,例如,只输出...
Log4Qt是Qt框架下的一款日志记录库,它基于流行的Java日志库log4j设计,为C++开发者提供了一套强大、灵活的日志处理机制。本文将深入探讨Log4Qt日志管理的核心概念、功能特性以及如何在实际项目中有效应用。 一、...
在Java编程中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,调试错误,以及优化性能。Log4j是Apache组织提供的一款广泛使用的日志框架,它提供了灵活且高效的日志处理能力。本示例将详细介绍如何...
1. **Logger**:类似于Java内置的日志系统,Log4j的Logger也是用于记录日志的类,但它的优点在于可以动态地改变日志级别,且支持多个命名的Logger。 2. **Appender**:Appender负责将日志信息输出到指定的地方,如...