今天下午有点累,所以把以往工作中遇到的问题和自己解决的方法和大家共享一下
日志是每个工程必不可少的部分,而log4j大家也用的很熟了,有将调试信息打到控制台的,有的保存文件或数据库
在这里我给给大家讲一个log4j的用法,是在bs中如何加载到log4j的文件,并将调试信息记录下来
首先写好log4j文件
如下(比较简单),这是配置成每日递增的日志
log4j.rootLogger = error, dailyFile
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.File=dailyRollingFile.log
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=%d (%c:%L)--%m%n
然后在web.xml中定义一个servlet
这里有2个参数,一个是log4j,这个参数是定义了log4j的位置
另外一个参数outputDir,这里是定义输出的日志目录(不用预先建立,会自动建立)
<servlet></servlet>
xml 代码
- <servlet>
-
<servlet-name>SystemStartUp</servlet-name>
-
<servlet-class>
- com.cnc.proud.servlet.SystemStartUp
-
</servlet-class>
-
<init-param>
-
<param-name>log4j</param-name>
-
<param-value>WEB-INF\classes\log4j.properties</param-value>
-
</init-param>
-
<init-param>
-
<param-name>outputDir</param-name>
-
<param-value>logs</param-value>
-
</init-param>
-
<load-on-startup>2</load-on-startup>
-
</servlet>
然后看看这个servlet,首先取得web.xml中的2个参数,并读取相应的配置信息,然后用PropertyConfigurator这个类加载
java 代码
- package proud.servlet;
-
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Properties;
-
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
-
- import org.apache.log4j.PropertyConfigurator;
-
- import com.cnc.proud.util.ServiceFactory;
-
-
-
-
-
-
- public class SystemStartUp extends HttpServlet {
-
-
private static final long serialVersionUID = 8421025842405267201L;
-
-
public void init(ServletConfig config) throws ServletException {
-
super.init(config);
- ServiceFactory.init();
-
String prefix = config.getServletContext().getRealPath("/");
-
String file = config.getInitParameter("log4j");
- String filePath = prefix + file;
-
String outputDir = config.getInitParameter("outputDir");
-
-
Properties props = new Properties();
-
try {
-
FileInputStream istream = new FileInputStream(filePath);
- props.load(istream);
- istream.close();
-
String logFile = prefix + outputDir + "\\"
- + props.getProperty("log4j.appender.dailyFile.File");
- props.setProperty("log4j.appender.dailyFile.File", logFile);
- PropertyConfigurator.configure(props);
- System.out.println("启动日志成功!");
- } catch (IOException e) {
- System.out.println("启动日志失败!");
- }
- }
- }
-
这个只是在发布工程的时候适用,调试程序的时候建议还是用console方式
并且记得在发布工程的时候把输出级别调高点,如error
分享到:
相关推荐
- 将log4j配置文件放入WEB-INF/classes目录下,确保在Web应用启动时能被加载。 4. **通过web.xml配置Log4j** - 在web.xml中,我们可以使用`<context-param>`标签来指定Log4j配置文件的位置,例如: ```xml ...
该 Servlet 的主要任务是在启动时加载特定的 `log4j.properties` 文件。 ```java public class Log4jInitServlet extends HttpServlet { @Override public void init() throws ServletException { String ...
3. 在Tomcat的`web.xml`配置文件中,可能需要配置一个`ContextLoaderListener`,以确保在应用程序启动时加载Log4j配置。 压缩包中的"**lib**"目录可能包含Log4j的必要依赖库,比如`log4j.jar`,这是运行Log4j的日志...
最后,为了使Spring与log4j集成,我们需要在`web.xml`(对于Web应用)或`context.xml`(对于非Web应用)中引入log4j的初始化参数,确保在应用启动时加载log4j配置: ```xml <param-name>log4jConfigLocation ...
- **配置 web.xml**:在应用的 `web.xml` 文件中添加以下配置,以便在启动时加载 Log4j: ```xml <listener-class>com.apache.jakarta.log4j.Log4jInit</listener-class> ``` 其中 `<init-param>` 用于指定...
这个 Servlet 的作用是在应用启动时读取配置文件并初始化 Log4j。具体步骤如下: ```java package ttzl.log.web; import javax.servlet.http.HttpServlet; import org.apache.log4j.PropertyConfigurator; public...
明白这一点很重要,这里 Log4j 有一个规则:假设 Loggers 级别为 P,如果在 Loggers 中发生了一个级别 Q 比 P 高,则可以启动,否则屏蔽掉。 Java 程序举例来说: ``` //建立 Logger 的一个实例,命名为“com.foo”...
同时,确保Tomcat启动脚本(`catalina.sh`或`catalina.bat`)包含以下行来加载Log4j配置: ```bash -Dlog4j.configuration=file:${catalina.base}/conf/log4j.properties ``` 这样,Tomcat就会使用Log4j进行日志...
至于WSAD(WebSphere Application Developer)5.1配置log4j的步骤,可以通过编辑服务器的类加载器配置,将log4j的相关JAR文件添加到服务器的类路径,并确保`log4j.properties`文件在正确的位置。`WSAD5.1配置log4j....
为了使配置生效,我们需要在`web.xml`中添加如下配置,让Spring容器加载log4j配置: ```xml <param-name>log4jConfigLocation <param-value>/WEB-INF/classes/log4j.properties</param-value> <!-- 指定log4j...
要在Web应用中使用Log4j,需要在Servlet容器启动时加载配置文件。下面是一个简单的Servlet示例,展示了如何在Servlet的`init()`方法中初始化Log4j: ```java public class InitServlet extends HttpServlet { ...
启动Tomcat,程序运行时,Log4j会根据配置文件生成日志文件。 通过以上步骤,你可以在Tomcat环境中成功地使用Log4j接管日志生成。记住,合理配置日志级别和输出位置,可以有效地辅助开发和维护,避免日志信息过于...
5. **类路径加载**:确保Log4j的库文件(log4j-core和log4j-api的JAR文件)在类路径中。对于Web应用,这些JAR可能需要放在WEB-INF/lib目录下。 6. **代码使用**:检查代码中对Log4j的引用是否正确。通常,我们使用...
3. **初始化**:在应用程序启动时,Log4j会自动加载配置文件,并根据配置设置日志记录行为。 4. **使用API**:通过调用`Logger`类的方法,如`logger.info()`, `logger.error()`等,可以在代码中插入日志语句。 5. ...
1. **创建Servlet进行初始化**:首先,需要创建一个Servlet,该Servlet会在容器启动时自动加载,从而执行`log4j`的初始化操作。 2. **配置log4j文件名参数**:在web.xml中,为Servlet配置初始化参数,指明`log4j`...
此外,项目还可能包含了一个示例的Web.xml配置,用于在Web应用启动时加载Log4J的配置文件。 通过这个Demo,你可以学习到如何在Java Web环境中配置和使用Log4J,理解其工作原理,以及如何根据需要调整日志级别和输出...
- **说明**:通过注册`Log4jConfigListener`监听器,可以在应用启动时自动加载Log4J配置,并在配置文件发生变化时自动刷新配置。 #### 三、Log4J配置文件详解 Log4J配置文件通常是`.xml`格式,其中包含了日志输出...
在web应用中,通常会将Log4j配置文件(log4j.properties或log4j.xml)放在类路径下,以便在web容器启动时自动加载。通过在代码中创建Logger实例,开发者可以方便地记录请求处理、数据库操作等各种日志信息。 然后,...
LOG4J会在启动时自动查找配置文件。如果使用IDE运行程序,应将`log4j.properties`文件放在`classes`目录下;如果是在Web服务器上运行,应将其放在`WEB-INF/classes/`目录下。 3. **基本配置器** 如果没有使用...
最后,关于log4J的集成,因为Spring框架通常依赖log4J来管理日志,所以需要在`web.xml`中指定log4j配置文件的位置,这样Spring启动时会读取这个配置文件来设定日志输出的级别、格式等参数。例如: ```xml <!-- log4...