转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52967694

1 配置log4j

log4j.properties文件内容如下:

log4j.rootLogger=debug,info,error,DEBUG,CONSOLElog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%nlog4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
log4j.appender.info.File=/Users/loongshawn/Documents/testspace/axf-client/logs/info/info.loglog4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error
log4j.appender.error.append=true
log4j.appender.error.File=/Users/loongshawn/Documents/testspace/axf-client/logs/error/error.loglog4j.logger.DEBUG=debug
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = debug
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=/Users/loongshawn/Documents/testspace/axf-client/logs/debug/debug.log

配置文件中指定日志输出路径配置代码片段如下:

log4j.appender.DEBUG.File=/Users/loongshawn/Documents/testspace/axf-client/logs/debug/debug.log

上述日志输出路径为指定好的绝对路径,可否依据程序的运行情况,动态配置路径呢?答案是可以的,详情往下看。

2 动态配置日志输出路径

动态配置日志输出路径分为两步:第一步抽象日志输出路径;第二步设置系统变量。

2.1 抽象日志输出路径

修改文件输出路径,即将决定路径替换为${log.base}:

log4j.appender.DEBUG.File=${log.base}/system/logs/debug/debug.log

2.2 设置系统变量

上一步中已经指定了抽象路径log.base(当然名称可以随意取),因此在程序运行前需要初始化这个系统变量。

设置系统变量利用方法System.setProperty(“log.base”,rootPath); 这里需要注意一点是,main函数主类中初始化变量时,不要初始化log4j, 否则会报错,初始化log4j的动作放在子类中。

// 初始化日志路径
String rootPath = PathUtil.getPath();
System.setProperty("log.base",rootPath);

2.3 程序运行效果

上述配置是在程序运行的根目录中创建system/log的文件夹,在文件夹中分别创建日志输出文件。

Log4j配置输出log文件的相对路径相关推荐

  1. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)

    前言 前面一直在说,如何读取到log4j 的配置文件 log4j.properties. 接下来的探讨的是: log4j 里配置产生的log 文件的路径如何设置. tomcat 还好.拿复杂点的 we ...

  2. log4j不生成log文件

    系统需要日志记录,今天配置了下log4j生成log文件.在main方法运行测试方法,控制台打印,也生成了log文件.但是在程序正常运行后,就只能在控制台打印了,不能生成log文件. - - 好吧,愁死 ...

  3. 12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了

    文章目录 一.为啥要使用第三方Log库,而不用平台自带的Log库 二.Log4j系列库的功能介绍与基本概念 三.Log4Qt库的基本介绍 四.将Log4qt组装成为一个单独模块 五.使用配置文件的方式 ...

  4. openresty的html文件夹在,Openresty 配置访问静态文件,拆分路径

    http { server { listen 8080; location / { # default_type text/html; # content_by_lua ' # ngx.say(&qu ...

  5. Python:批量读取目录下jpg文件,并输出jpg文件的绝对路径到指定txt文档中。

    #功能:读取jpg文件,输出绝对目录到txt中. import os.path import glob import os"""https://blog.csdn.net ...

  6. 一个小巧的C++Log输出到文件类

    一个小巧的C++Log输出到文件类 (转) 作者:wangyin159 http://www.cnblogs.com/mazhenyu/p/4139352.html 一个小巧的C++Log输出到文件类 ...

  7. 【递归:把目录下所有文件的绝对路径给输出在控制台】

    package com.bornsoft.test.capitalpool.tyc;import java.io.File;/*** @author shusheng* @description* @ ...

  8. Spring项目log4j配置

    一.pom引入log4j并解决Spring等三方依赖冲突: 冲突解决可以参考: mvn dependency:tree 解决依赖冲突_奔跑的_迷彩狼的博客-CSDN博客 二.引入log4j配置文件: ...

  9. linux将屏幕输出到文件,Linux命令执行的屏幕输出内容重定向到日志文件

    摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...

最新文章

  1. 12、mybatis返回map单条及多条记录
  2. 印象笔记无法连服务器(internet explore的问题)
  3. Android经常使用的五种弹出对话框
  4. Vue组件通信原理剖析(一)事件总线的基石 $on和$emit
  5. react父子组件通信案例
  6. Mosquito的优化——其他优化(九)
  7. 基于linux在线预览
  8. 如何在计算机中快速新建TXT文本文档
  9. 使用xml配置文件实现HSF框架和EDAS注册服务器的发布-订阅模式
  10. ORA-01722:invalid number
  11. python alpha通道_Python PIL完全删除每个alpha通道
  12. 工欲善其事之Redis可视化管理工具
  13. 变量x,y,z赋初值2.5,然后在屏幕上打印这些变量的值。
  14. 《SQL基础》04. SQL-DQL
  15. CIDR(构成超网)
  16. 在360新员工入职培训上的讲话
  17. navicate Cannot create file ... 系统找不到指定的路径”问题解决
  18. android设置路由器,如何在Android手机上设置无线路由器以实现WiFi互联网访问
  19. 华中科大三个大学生创新团队的成长启示
  20. Windows Server 2012 R2 安装oracle11g

热门文章

  1. 芯原发布一站式VeriHealth™大健康芯片设计平台
  2. 安装python时出现的错误0x80072efd及0x80072f7d的解决方法
  3. 企业搭建帮助中心的额方式有哪些?
  4. win7 vmware虚拟机上网设置
  5. java控制台输出不同颜色文字
  6. IO-BIO-NIO-AIO
  7. trunc(sysdate)
  8. /usr/local/lib/libz.so.1:-1: error: 无法添加符号: DSO missing from command line
  9. Bs4使用过程中常见的问题
  10. StarUML 3 中文文档 状态图