这样可以保证log4j能够自动识别配置文件,而不用显式的配置)内容如下:
- log4j.rootLogger=warn, stdout,file
- ### direct log messages to stdout ###
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target=System.out
- #log4j.appender.stdout.Target=System.err
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- #log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
- log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %c{1}:%L - %m%n
- ### direct messages to file file.log ###
- #log4j.appender.file=org.apache.log4j.FileAppender
- log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
- log4j.appender.file.DatePattern=yyyyMMdd
- log4j.appender.file.File=../logs.log
- log4j.appender.file.layout=org.apache.log4j.PatternLayout
- log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
问题描述:在控制台程序下可以输出到控制台和logs.log文件当中,但是在web项目当中做的log输出只能输出到控制台,而无法输出到logs.log文件当中。
控制台程序如下:
- public class TestLogger {
- public static Log log = LogFactory.getLog(TestLogger.class);
- public static void main(String[] args) {
- log.error("怎么回事?");
- }
- @Test
- public void test() {
- log.error("怎么回事?");
- }
- }
以上程序可以输出到控制台和logs.log文件当中。但是如下程序:
- public class TestLogs extends HttpServlet {
- private static final long serialVersionUID = 1L;
- private static Log log = LogFactory.getLog(TestLogs.class);
- /**
- * @see HttpServlet#HttpServlet()
- */
- public TestLogs() {
- // TODO Auto-generated constructor stub
- }
- @Override
- public void init() throws ServletException {
- log.error("怎么回事?");
- }
- }
输出只能输出到控制台,而无法输出到logs.log文件当中。
问题出在
log4j.appender.file.File=../logs.log
即要指定绝对路径而不能指定相对路径!问题解决!
配置成相对路径时,在eclipse 工程跟目录下能生成相应的日志文件,但是web服务器启动时不会记录到根目录下的日志文件,因为web服务器找不到。
纠结好久的问题!!。
相关推荐
在 SSM 整合项目中,需要在 web.xml 文件中指定 Log4j 配置文件的位置,以便 Spring 可以加载 Log4j 配置文件。下面是一个基本的 web.xml 配置: ``` <listener-class>org.springframework.web.util.Log4...
通过以上步骤,我们可以有效地在Web项目中集成并利用Log4j进行日志记录,从而提高开发效率,提升问题排查能力,以及优化应用性能。对于更复杂的需求,如分布式日志收集、日志搜索与分析,可以结合ELK(Elasticsearch...
- **下载与导入**:首先,你需要从官方网站或依赖管理工具(如Maven、Gradle)获取Log4j的JAR包,然后将其添加到Web项目的类路径中。 - **配置Log4j**:创建一个名为`log4j.properties`或`log4j.xml`的配置文件,...
- 将log4j的JAR文件(如log4j-1.2.x.jar)添加到项目的类路径中。 - 将log4j配置文件放入WEB-INF/classes目录下,确保在Web应用启动时能被加载。 4. **通过web.xml配置Log4j** - 在web.xml中,我们可以使用`...
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
在本文中,我们将深入探讨如何配置log4j,以便将日志信息输出到项目中的特定文件夹。 首先,我们需要创建一个`log4j.properties`或`log4j.xml`配置文件,这个文件通常放在项目的`src/main/resources`目录下。在这个...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
有时,旧版本的Log4j可能不支持新特性或存在已知问题。 10. **异常处理**:如果Log4j的初始化过程中出现异常,可能不会有任何日志输出。查看应用启动时的异常堆栈,找出可能的问题。 排查过程中,可以尝试逐步简化...
在Web项目中,Log4j2的配置通常放在`WEB-INF/classes`目录下的`log4j2.xml`或`log4j2.json`文件中。以下是一个简单的`log4j2.xml`配置示例: ```xml [%t] %-5level %logger{36} - %msg%n"/> `...
WAS 上 log4j 日志不能...解决 WAS 上 log4j 日志不能输出(ibatis)sql 语句的问题需要改变 WAS 的默认 LogFactory 实现类,使其使用 log4j 框架下的 LogFactory 实现类,并且需要正确配置 log4j.properties 文件。
在"log4j添加日志到数据库和文件中"的场景中,我们首先需要理解Log4j的基本架构。它主要由三个组件构成:Logger(日志器)、Appender(输出器)和Layout(布局)。Logger负责生成日志事件,Appender则负责将这些事件...
- `org.apache.log4j.FileAppender`:将日志输出到指定的文件中。 - `org.apache.log4j.DailyRollingFileAppender`:根据日期滚动日志文件,每天生成一个新的日志文件。 - `org.apache.log4j.RollingFileAppender...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它为各种日志框架,如Log4j、Logback等提供一个简单的接口,使得开发者能够在不改变代码的情况下更换日志实现。在非Web工程中,SLF4J同样扮演着...
在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...
另外,java.util.logging生成的日志格式与项目中使用Log4j记录的日志格式不一致,这会导致在后期日志分析时出现格式不统一的问题。 为了改善这些问题,Tomcat提供了一种机制,允许我们通过配置和替换特定的jar包来...
创建一个名为`log4j.properties`或`log4j.xml`的配置文件,放置在Web应用的`WEB-INF/classes`目录下。例如,`log4j.properties`配置如下: ```properties # 设置全局日志级别为INFO log4j.rootLogger=INFO, FILE #...
- **定义Appender**:例如`log4j.appender.stdout=org.apache.log4j.ConsoleAppender`,定义了一个输出到控制台的Appender。 - **配置Appender属性**:如`log4j.appender.stdout.Target=System.out`,表示将日志输出...
- 当项目中包含log4j配置文件时,可能会影响JBoss原有的日志输出行为。例如,如果项目中的配置文件包含了Console Appender,则可能会导致错误,如`ERROR: invalid console appender config detected, console ...
本教程将详细阐述如何使用四个关键组件——Maven、SpringMVC、MyBatis和Log4j——来搭建一个强大的Web应用框架,旨在提高开发效率并优化项目管理。 **Maven** 是一个流行的项目管理和综合工具,它通过统一的构建...