- 浏览: 1329396 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (732)
- Java_about (146)
- Spring_Hibernate_Struts_OpenSource (27)
- linux_unix (62)
- life_sth (22)
- js_css_html_xml_nodejs (69)
- design_pattens (1)
- Perl (8)
- php_ecshop (4)
- DB_Mysql_Oracle_Informix_SqlServer (43)
- JSTL (8)
- Testing_自动化测试 (42)
- DB_ID_UUID (4)
- SEM_SEO (1)
- english_study_improvement (4)
- SVN_Git (9)
- WebService_SOA_CloudComputing (3)
- E-Commerce (1)
- Lucene_Solr (7)
- others (2)
- Regex (2)
- tomcat_jetty (8)
- zeroc-ice (1)
- java_excel (5)
- ant_maven_gradle (5)
- Unity_VR_AR_C# (2)
- jmeter (1)
- XPath_dom4j (1)
- Ruby_and_Rails (68)
- write_a_rails (17)
- manage_and_team (1)
- getting_real (1)
- ubuntu (20)
- git_and_git_flow (7)
- TODO (1)
- PM_design (2)
- Python_and_Django (8)
- NoSql_mongo_redis (24)
- C/C++ (3)
- vi_vim_gvim (0)
- c#_.Net_windows编程_dll (10)
- Php_and_Yii (9)
- Android_IOS (31)
- Mysql (5)
- sa_运维_network_硬件 (37)
- lua (2)
- c_cpp_VisualStudio (21)
- 硬件-RM-Arduino (6)
最新评论
-
shenkun58:
...
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
liaojia1:
正解,感谢
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
flingfox63:
谢谢分享,电脑上有IPV6,导致了Guard启动不了……
ruby错误解决: Address family not supported by protocol - connect(2) -
c39274936:
s = "hello_world_ruby" ...
驼峰格式和下划线格式转换_translation between camel and snake format -
yfj300:
学习了学习了学习了学习了
硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
方法一: 用相对路径代替绝对路径
主要是扩展了log4j的RollingFileAppender类,其他的FileAppender同样道理。扩展的方法,就是用一个子类去覆盖 setFile方法,这个方法在log4j读取配置文件生成appender的时候调用,传入的就是配置文件中的路径,这样我就可以按照自己的想法在路径 前面加上根路径了。这种方法可以在log4j.properties中用相对路径自由配置log4j.appender.A1.File属性来决定生成的 日志相对web应用根目录的位置。
举例:ZxmDailyRollingFileAppender.java
log4j.properties文件
log4j.appender.AFile=com.common.config.ZxmDailyRollingFileAppender
#log4j.appender.AFile=org.apache.log4j.DailyRollingFileAppender
public class ZxmDailyRollingFileAppender extends DailyRollingFileAppender {
public void setFile(String filetype, boolean arg2, boolean arg3, int arg4) throws IOException {
String path = getServletConfig().getServletContext().getRealPath("/logs/");
String fuhao = File.separator;
String filepath = path + fuhao + "log.html";
super.setFile(filepath, arg2, arg3, arg4);
}
}
方法二: 使用服务器环境变量
是利用服务器vm中已经存在的环境变量如${catalina.home}或者${catalina.base}来设置相对 于${catalina.home}或者${catalina.base}的日志路径,日志只能放到服务器子目录里,而且如果是用的其它服务器,则要改对 应的环境变量。此方法平台移植不方便。
举例:log4j.appender.file.file=${catalina.base}/logs/psp_error.log
catalina.home指向公用信息的位置,就是bin和lib的父目录。
catalina.base指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。
仅运行一个Tomcat实例时,这两个属性指向的位置是相同的。
-->>备注
使用服务器的环境变量,其实是使用tomcat和启动服务中设置的环境变量。
如果没有符合要求的,也可以自己设置,只不过这样的设置不太能通用(尤其是换了操作系统)
方法三: 通过servlet初始化init()方法中加载file属性实现相对路径
是扩展ActionServlet类,覆盖其init()方法,新方法中载入log4j.properties位置的参数,可以自由配置log4j的配置文件的名字和存放位置。也可自由配置log4j日志文件的相对于当前应用的路径。
举例:
web.xml
<!-- 系统初始化配置信息 servlet -->
<servlet>
<servlet-name>configServlet</servlet-name>
<servlet-class>com.common.config.ConfigServlet</servlet-class>
<init-param>
<param-name>Log4jFile</param-name>
<param-value>/WEB-INF/config/log4j.properties</param-value>
</init-param>
<init-param>
<param-name>Log4jFileSavePath</param-name>
<param-value>/logs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
ConfigServlet.java文件
public class ConfigServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
//初始化log4j日志组件
initLogConfig(config);
}
private void initLogConfig(ServletConfig config) {
String prifix = getServletContext().getRealPath("/");
//System.out.println(prifix);
//获取log4j配置文件地址
String Log4jFile = config.getInitParameter("Log4jFile");
//System.out.println(Log4jFile);
String filePath = prifix + Log4jFile;
//System.out.println(filePath);
PropertyConfigurator.configure(filePath);
Properties props = new Properties();
try {
String Log4jFileSavePath = config.getInitParameter("Log4jFileSavePath");
//System.out.println(Log4jFileSavePath);
FileInputStream log4jStream = new FileInputStream(filePath);
props.load(log4jStream);
log4jStream.close();
//设置日志保存地址
String logFile = prifix + Log4jFileSavePath + File.separator + "d1cm_log.html" ;
//System.out.println(logFile);
props.setProperty("log4j.appender.AFile.File", logFile);
PropertyConfigurator.configure(props); //装入log4j配置信息
} catch (IOException e) {
e.printStackTrace();
}
System.err.println("初始化log4j日志组件");
}
}
O
O
O
O
O
O
O
O
发表评论
-
如何在IDEA单元测试中使用Scanner获取输入内容
2024-10-25 21:19 153如何在IDEA单元测试中使用Scanner获取输入内容 = ... -
java播放音频声音mp3等
2024-05-22 15:16 518java播放音频声音mp3等 = = = 这个方法 ... -
打包Java程序为.exe文件
2023-09-27 16:25 471= = = 打包Java程序为.exe文件 fro ... -
Java怎么生成exe可执行文件【图文讲解】
2023-09-27 16:21 457= 开发的工具,让客户体验一下再说。此时又不想发源码,怕 ... -
Java8 List集合Stream流方法操作详解
2023-09-27 16:02 145= = = from: https://zhuanl ... -
Java8 List集合Stream流方法操作详解
2023-09-27 15:59 650= = = from: https://zhuan ... -
Java8 List集合Stream流方法操作详解
2023-09-27 15:56 99= = = from: https://zhuanl ... -
【原创】Cannot create property=xxx for JavaBean=【lombok 和 yaml包 混合报错】
2023-02-04 23:31 1112= = = 问题: 同时使用lombok 和 ... -
【摘】Java文档注释用法+JavaDoc的使用详解
2022-09-12 16:32 525= = 节约重复注释 使用@inheritDo ... -
【朝花夕拾】java内部类,原理,使用
2022-08-09 22:52 450= 碰到类似问题,多读《thinking in java ... -
【拾遗】java数组copy拷贝复制的工具类方法
2022-06-11 21:20 671= 对工具类来说,copyOfRange 最好用。 这 ... -
利用Httpclient下载图片,java不用httpClient下载图片
2022-05-30 22:25 517= = = from:https://blog.csd ... -
为什么要使用lombok?
2022-04-04 20:46 456= = = 参考:https://blog.csd ... -
朝花夕拾:java-向上转型中变量覆盖要小心使用_继承过程中Java子类父类属性的覆盖问题
2022-01-13 17:31 438==== 现在的代码结构设计的复杂起来了,为了后来人编写 ... -
【Mysql数据库】Cause: java.sql.SQLException: The table 'xxx' is full
2022-01-04 17:03 1571= 本地开发测试,怎 ... -
JAVA工具类学习-java 两个list 交集 并集 差集 去重复并集
2021-09-10 16:17 907= = = List<String> ... -
java汉字判断,中文符号判断,中文标点符号判断
2021-09-02 19:07 1245=== = = 一、判断中文汉字 st ... -
velocity的模板笔记总结文档-方便查阅
2020-04-28 14:41 415= 最好把这几个官网文档看了: 官网官方文档refer ... -
mjson:像python和ruby一样好用的java类库操作json_js
2020-04-17 20:54 562= = = JSON Library for Jav ... -
关于idea2019.2-2019.3版本中文控制台乱码问题,tomcat7-tomcat8乱码
2020-04-04 23:20 512= 1 idea2019.2-2019.3版本中文控制台乱 ...
相关推荐
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
log4j中配置日志文件相对路径方法分析 方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${...
这个“log4j简单范例 日志文件是相对路径的”示例将展示如何配置Log4j来记录日志,并将日志文件保存在程序运行时的相对路径下。 首先,Log4j的核心组件包括Logger(日志器)、Appender(输出目的地)和Layout(格式...
在SSH(Struts、Spring、Hibernate)等Java Web框架中,配置Log4j以使用相对路径是非常常见的需求,这有助于在不同环境下保持日志文件的一致性。以下是关于Log4j相对路径配置的详细说明: 首先,在`Web.xml`文件中...
### 完全相对路径的log4j配置 #### 背景与意义 Log4j 是一个基于 Java 的日志框架,广泛应用于企业级应用的日志记录。它提供了灵活的日志记录机制,允许开发者根据需求调整日志级别、格式以及输出目的地等。本文将...
本文主要讨论了在Log4j配置中如何处理相对路径的问题,以适应不同环境下的日志文件存储需求。 一、使用系统属性设置路径 在Log4j的配置文件(通常是`log4j.properties`)中,可以使用`${}`语法引用系统属性。例如...
log4j.appender.FILE.File=${catalina.home}/logs/myApp.log # 这里使用相对路径 log4j.appender.FILE.ImmediateFlush=true log4j.appender.FILE.Threshold=DEBUG log4j.appender.FILE.Append=true log4j.appender....
这里通过`getInitParameter`获取Web应用中的初始化参数,通常是log4j配置文件的路径,然后调用`PropertyConfigurator.configure()`方法加载配置。 #### 在IDE中使用Log4j 对于在IDE中开发的应用,可以直接在代码中...
日志级别的配置也是动态配置中的一个重要方面,通过在`log4j.properties`文件中设置不同的日志级别,可以控制哪些级别的日志会被记录下来。例如: ``` log4j.rootLogger=DEBUG, R ``` 上述配置表示root ...
本篇将详细介绍如何配置log4j日志文件,特别是在JSP项目中的应用。 首先,我们要理解日志的级别。Log4j支持多个日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL。这些级别按照严重程度递增,DEBUG是最详细的信息,...
### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...
#### 二、Log4j配置方法 在进行Log4j的配置时,主要有两种常见的配置方式:**.properties** 和 **.xml** 文件。这两种方式各有特点,可根据实际需求选择。 ##### 1. .properties 文件配置 .properties 文件配置...
`log4j.appender.FILE`配置文件appender,如`log4j.appender.FILE.File=file.log`指定日志文件路径。`log4j.appender.FILE.Append=false`决定是否追加模式,如果为`true`,则日志将被添加到现有文件,如果为`false`...
Log4j通过配置文件(通常是log4j.properties或log4j.xml)来设置日志的行为,其中,日志文件的路径配置是关键部分。 二、绝对路径与相对路径 1. 绝对路径:在操作系统中,绝对路径是从根目录开始,完整指定文件或...
这个可能是针对特定场景或示例(如书中的例子)的Log4j配置文件,可能包含了一些特定的设置或示例配置。开发者可以根据这个模板进行修改,以适应自己的项目需求。 5. **使用Log4j** 在Java代码中,开发者可以创建...
- `log4j.appender.*.file`: 如果是文件appender,指定日志文件的路径。 - `log4j.appender.*.append`: 是否追加到已有文件,或覆盖文件。 - `log4j.logger.*`: 可以为特定的类或包设置独立的日志级别和appender。...
在本文中,我们将详细探讨如何在项目中配置Log4j,以及Log4j配置文件的主要元素。 首先,我们需要准备环境。在本例中,项目是基于Tomcat服务器的,所以你需要下载并安装Tomcat。Tomcat 5.5.25是一个较旧的版本,但...
log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...
2. **配置log4j文件名参数**:在web.xml中,为Servlet配置初始化参数,指明`log4j`配置文件的名称。 3. **在Servlet中调用初始化方法**:在Servlet的`init()`方法中,获取Web应用的根目录,结合配置的文件名,构造...
1. **配置文件**:Log4Qt通常使用XML配置文件来设置日志行为。例如,你可以设置全局日志级别,定义Appender的输出目的地和格式,以及Logger的特定配置。 2. **初始化**:在Qt程序中,首先需要加载配置文件并初始化...