import java.io.File;
import java.net.URISyntaxException;
import java.util.Map;
import java.util.Properties;  //java在gradle工程访问src/test/resources或者src/main/resources目录下的资源配置文件
public class  TestMain
{  public static  void main(String args[]) throws URISyntaxException {  System.out.println(new File(".").getAbsolutePath());  Properties properties=new Properties();  try {  // properties.load(new FileInputStream("config.properties"));  System.out.println(TestMain.class.getResource("/config.properties").toExternalForm());  System.out.println(Thread.currentThread().getContextClassLoader().getResource("config.properties"));  properties.load(TestMain.class.getResource("/config.properties").openStream());  } catch (Exception e) {  e.printStackTrace();  }  String version=properties.getProperty("version");  System.out.println(version);  for(Map.Entry<Object,Object>  entry:properties.entrySet())  {  Object key=entry.getKey();  Object value=entry.getValue();  System.out.println(key+"="+value);  }  }  }  

import java.io.File;
import java.io.IOException;
import java.net.URL;  public class MyUrlDemo {  public static void main(String[] args) {  MyUrlDemo muDemo = new MyUrlDemo();  try {  muDemo.showURL();  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  public void showURL() throws IOException {  // 第一种:获取类加载的根路径   D:\git\daotie\daotie\target\classes  File f = new File(this.getClass().getResource("/").getPath());  System.out.println(f);  // 获取当前类的所在工程路径; 如果不加“/”  获取当前类的加载目录  D:\git\daotie\daotie\target\classes\my  File f2 = new File(this.getClass().getResource("").getPath());  System.out.println(f2);  // 第二种:获取项目路径    D:\git\daotie\daotie  File directory = new File("");// 参数为空  String courseFile = directory.getCanonicalPath();  System.out.println(courseFile);  // 第三种:  file:/D:/git/daotie/daotie/target/classes/  URL xmlpath = this.getClass().getClassLoader().getResource("");  System.out.println(xmlpath);  // 第四种: D:\git\daotie\daotie  System.out.println(System.getProperty("user.dir"));  /* * 结果: C:\Documents and Settings\Administrator\workspace\projectName * 获取当前工程路径 */  // 第五种:  获取所有的类路径 包括jar包的路径  System.out.println(System.getProperty("java.class.path"));  }
}

  

请看下面这段配置,这是无法工作的:

[XML] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <configuration>
  3. <contextName>JTheque</contextName>
  4. <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  5. <file>logs/jtheque.log</file>
  6. <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  7. <FileNamePattern>logs/jtheque.%i.log.zip</FileNamePattern>
  8. <MinIndex>1</MinIndex>
  9. <MaxIndex>5</MaxIndex>
  10. </rollingPolicy>
  11. <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  12. <MaxFileSize>5MB</MaxFileSize>
  13. </triggeringPolicy>
  14. <layout class="ch.qos.logback.classic.PatternLayout">
  15. <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
  16. </layout>
  17. </appender>
  18. <root level="DEBUG">
  19. <appender-ref ref="FILE"/>
  20. </root>
  21. </configuration>

使用该配置,不会生成任何日志文件,这可能是 LogBack 的 bug,解决的办法就是使用绝对路径,你可以用一些系统变量来代替,例如:

[XML] view plaincopy
  1. ...
  2. <file>${user.dir}/logs/jtheque.log</file>
  3. <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  4. <FileNamePattern>${user.dir}/logs/jtheque.%i.log.zip</FileNamePattern>
  5. <MinIndex>1</MinIndex>
  6. <MaxIndex>5</MaxIndex>
  7. </rollingPolicy>
  8. ...

现在就好了,希望对某些使用 LogBack 的人有帮助。

其实使用相对路径是能产生日志文件的,只是这个相对路径是相对与Eclipse(我是使用eclipse开发的,在eclipse启动的),我发现日志全部跑到eclipse安装目录里面去了

不过看样子,logback是不推荐使用相对路径来记录日志文件,个人觉得确实使用一些环境变量来引用绝对路径要更好控制一点

tomcat下可以用:${catalina.base}/logs/your_log.log

一直使用相对路径. 没发现问题.  使用你这个配置也没问题. 可能你用的版本比较老,用最新的时会有警告,
  http://logback.qos.ch/codes.html#layoutInsteadOfEncoder
   ps:  logback在当打包时目录不存在时不会自动创建的目录,  需要做小小的修改才行.

1, 把日志发送到邮件中

2, 把日志保存到数据库中(有异步么?)

官方文档有: http://logback.qos.ch/manual/appenders.html

  

转载于:https://www.cnblogs.com/luffystory/p/7979442.html

logback读取src/test/resource下的配置文件相关推荐

  1. springboot读取src下文件_springboot获取src/main/resource下的文件

    问题如下: maven构建的springboot工程下的,文件路径 希望web端能够下载这里的"assess_remplate.docx"文件. 解决: 1.通过resource获 ...

  2. maven工程下 读取resource下配置文件

    在maven工程中,我们会将配置文件放到,src/main/resources   下面,例如 我们需要确认resource 下的文件 编译之后存放的位置 它编译的路径直接位于classes下面,这个 ...

  3. java resources 目录_Maven项目中读取src/main/resources目录下的配置文件的方法

    在Maven项目的开发中,当需要读取src/下的配置文件时,该怎么做? 我们假设Resources下有一个文件名为kafka.properties的配置文件(为什么用kafka.properties, ...

  4. 解决项目无法读取src/main/java目录下面的配置文件问题

    我们在用Mybatis去操作底层数据库的时候,需要用到xml配置文件,一般我们是把它的配置文件和持久层接口与实现类放在同目录下. maven项目的时候,我们可能会遇到无法读取到dao对应的mapper ...

  5. maven项目编译漏掉src/main/java下的xml配置文件

    在整合Spring + Mybatis框架的时候,自动扫描配置都已经配置好了. 配置如下: <?xml version="1.0" encoding="UTF-8& ...

  6. IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功

    今天在IDEA下打包一个Java项目,准备打包成jar包直接执行,打包之后运行时候一直提示resource下资源文件找不到,但我又确实配置了的,而且在IDEA上可以运行,但是打包成jar包之后就运行不 ...

  7. java 获取webcontent目录_java web项目获取src和WebContent目录下的配置文件

    1.首先上目录结构: 2.部署到tomcat,在servlet中测试,测试代码: package test; import java.io.IOException; import java.io.In ...

  8. 解决idea中maven项目无法读取src/main/java目录下面的配置文件问题

    解决idea中maven项目无法读取src/main/java目录下面的配置文件问题 参考文章: (1)解决idea中maven项目无法读取src/main/java目录下面的配置文件问题 (2)ht ...

  9. springboot读取linux文件_SpringBoot读取Resource下文件的几种方式

    最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传:这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方 ...

最新文章

  1. 2020滑铁卢大学计算机科学学费,加拿大大学国际生学费上涨 滑铁卢大学学费上涨62%...
  2. arcgis 经纬度转大地坐标_土地报备坐标txt(坐标交换数据)转shp遇到的坑及其Python(ArcPy/ArcGIS)实现...
  3. int** 赋值_Python的赋值、浅拷贝、深拷贝之间的区别
  4. 复读数组(nowcoder 1103A)
  5. mysql的事务日志_MySQL 事务日志
  6. SpringBoot 入门知识点详解
  7. python里w_python vs pythonw | 学步园
  8. windows无法访问 计算机打印机,windows无法打开添加打印机解决方法
  9. CCF小白刷题之路---201809-1 卖菜(C/C++ 100分)
  10. 原生js实现运维小姐姐的九宫格抽奖活动、心跳快了
  11. 纯CSS 写动画背景,高仿蚂蚁庄园小鸡仔
  12. Windows版本下安装使用Grafana教程
  13. 计算机网络无法连接共享打印机驱动,Windows无法共享您的打印机,Windows无法连接到打印机...
  14. 基于属性的访问控制(ABAC)
  15. 一文玩转 WebDriver API
  16. 利用SW插件导出urdf文件
  17. python爬虫实战之去哪儿机票
  18. 纽约大学本科经济计算机专业,2020年纽约大学本科专业有哪些
  19. thinkpad l470安装win10时系统bios配置
  20. sweetalert swal 简单使用示例详解

热门文章

  1. 17011301(UE4的AnimDynamic)
  2. JVM学习笔记(一)JDKJREJVM
  3. js便签笔记(3)——切记:appendChild()、insertBefore()是移动element节点!
  4. 和菜鸟一起学产品之产品经理的三大文档
  5. 性能分析工具GpProfile
  6. LeetCode(806)——写字符串需要的行数(JavaScript)
  7. redis深度历险 pdf_程序员面试必备精选文档:Redis+Ng+Tomcat+并发编程+Spring系列
  8. 如果你昨天刚离职却忘了退公司的群,转天一早领导找你让你尽快退群,你会做何感想呢?
  9. 明锐旅行车又大又便宜,值得买吗?
  10. 职场上,领导讨厌但老板喜欢的3类员工