1>在Eclipse中里设置  windows->preferences->Java->Installed JRES->edit->Default VM Arguments 在文本框中输入 -Dcatalina.base=d:/logs

2>在IDEA的run->configurations里设置 >> vm options  在文本框中输入 -Dcatalina.base=d:/logs

_________________________________________________________________________________________

关于Log4j日志相对路径的配置请看:
log4j 产生的日志位置设置 和 catalina.home、catalina.base .

由于我们在Log4j的配置中引入了系统属性${catalina.base},下面讲一下如何设置catalina.base,本质上就是在启动Tomcat的时候,给启动命令或脚本增加参数:
可以参考:操作系统的环境变量和Java系统属性
1.第三方Tomcat

  1. Tomcat安装路径/bin下面的catalina.bat或者相关的几个bat文件里面,
  2. 就有 CATALINA_BASE 属性的设置,当然还有JAVA_HOME等几个属性的设置。
  3. 这些环境变量,在JVM启动的时候,都会被转换成 系统属性(键值对的形式保存)。
  4. 可以在脚本文件里相应的地方增加自己需要的参数。

2.Springboot内置Tomcat

1>在Eclipse中里设置  windows->preferences->Java->Installed JRES->edit->Default VM Arguments 在文本框中输入

-Dcatalina.base=d:/logs
2>在IDEA的run->configurations里设置,看图

用Maven启动项目时,在需要在命令行命令后加上 -Dcatalina.base="你的路径"。

 ______________________________________________________________________________________________________

springboot中将日志信息存放在catalina.base中

 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="true">
  3. <!-- 项目名称 -->
  4. <property name="PROJECT_NAME" value="springBootTemplate" />
  5.  
  6. <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
  7. <property name="LOG_HOME" value="${catalina.base}/logs" />
  8.  
  9. <!-- 控制台输出 -->
  10. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  11. <withJansi>true</withJansi>
  12. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  13. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  14. <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern>
  15. <charset>UTF-8</charset>
  16. </encoder>
  17. </appender>
  18.  
  19. <!-- 系统错误日志文件 -->
  20. <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  21. <!-- 过滤器,只打印ERROR级别的日志 -->
  22. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  23. <level>ERROR</level>
  24. <onMatch>ACCEPT</onMatch>
  25. <onMismatch>DENY</onMismatch>
  26. </filter>
  27. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  28. <!--日志文件输出的文件名-->
  29. <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  30. <!--日志文件保留天数-->
  31. <MaxHistory>15</MaxHistory>
  32. <!--日志文件最大的大小-->
  33. <MaxFileSize>10MB</MaxFileSize>
  34. </rollingPolicy>
  35.  
  36. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  37. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  38. <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
  39. <charset>UTF-8</charset>
  40. </encoder>
  41. </appender>
  42. <logger name="system_error" additivity="true">
  43. <appender-ref ref="SYSTEM_FILE"/>
  44. </logger>
  45.  
  46. <!-- 自己打印的日志文件,用于记录重要日志信息 -->
  47. <appender name="MY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  48. <!-- 过滤器,只打印ERROR级别的日志 -->
  49. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  50. <level>INFO</level>
  51. <onMatch>ACCEPT</onMatch>
  52. <onMismatch>DENY</onMismatch>
  53. </filter>
  54. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  55. <!--日志文件输出的文件名-->
  56. <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.my_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  57. <!--日志文件保留天数-->
  58. <MaxHistory>15</MaxHistory>
  59. <!--日志文件最大的大小-->
  60. <MaxFileSize>10MB</MaxFileSize>
  61. </rollingPolicy>
  62.  
  63. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  64. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  65. <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
  66. <charset>UTF-8</charset>
  67. </encoder>
  68. </appender>
  69. <logger name="my_info" additivity="true">
  70. <appender-ref ref="MY_INFO_FILE"/>
  71. </logger>
  72.  
  73. <!-- 开发环境下的日志配置 -->
  74. <springProfile name="dev">
  75. <root level="INFO">
  76. <appender-ref ref="CONSOLE" />
  77. <appender-ref ref="SYSTEM_FILE" />
  78. </root>
  79. </springProfile>
  80.  
  81. <!-- 生产环境下的日志配置 -->
  82. <springProfile name="prod">
  83. <root level="INFO">
  84. <appender-ref ref="SYSTEM_FILE" />
  85. </root>
  86. </springProfile>
  87. </configuration>

SpringBoot项目中在官方文档中说明,默认已经依赖了一些日志框架,而其中推荐使用的就是Logback,SpringBoot已经依赖了Logback所以不需要手动添加依赖。

如何配置

1、在resources目录下新建logback-spring.xml

只要你的名字是logback-spring.xml的话SpringBoot会自动识别和读取它的,所以你就不需要在application.yml进行其他的配置了。

配置文件具体如下:

同样的logback这里的配置文件也会读取相应的配置,比如你使用dev那么就会读取dev下的配置,如果你使用prod就会使用prod下的配置。

也就是说等到项目需要上线的时候,你只需修改springBoot的配置文件就可以了,不需要对logback进行修改,就可以实现在生产环境下和开发环境下打印不同的日志级别

在控制台打印的信息经过处理显示的颜色会有不同的区分,很容易发现问题。

还有是日志文件的分类

通过工具类会分离打印的日志

将需要的重要日志信息打印在my_info文件中去,而重要的错误信息存放在system_error文件中。

 
分类 微服务

logback 生成 catalina.base_IS_UNDEFINED 问题处理 &如何在eclipse/idea中添加VM参数的更多相关文章

  1. 如何在eclipse jee中创建Maven project并且转换为Dynamic web project

    如何在eclipse jee中创建Maven project并且转换为Dynamic web project 注意:该文档只针对以下eclipse版本,如图 为了方便,我将我本地的压缩包放在了微云网盘 ...

  2. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  3. 如何在Android Studio中添加注释模板信息?

    如何在Android Studio中添加注释模板信息? 在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等.那么在android ...

  4. 文章翻译:ABP如何在EF core中添加数据过滤器

    原文地址:https://aspnetboilerplate.com/Pages/Documents/Articles%5CHow-To%5Cadd-custom-data-filter-ef-cor ...

  5. 你竟然在公钥中下毒!——如何在RSA公钥中添加后门

    原文:http://www.hackdig.com/?01/hack-17893.htm 分享到: 当我知道它是如何运行时,我惊得下巴都掉了.这是一个非常简单的手法,但这篇文章会颠覆你之前对RSA的看 ...

  6. rails中如何在a标签中添加其他标签

    最近在用rails写一个项目练练手,然后遇到了一个问题,就是用 <% link_to("首页", root_path) %> 生成一个a标签,之后就在想我怎么在这个a标 ...

  7. 如何在select下拉列表中添加复选框?

    近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接 ...

  8. 如何在RCP程序中添加一个banner栏

    前言:这段时间还算比较空闲,我准备把过去做过的有些形形色色,甚至有些奇怪的研究总结一下,也许刚好有人用的着也不一定,不枉为之抓耳挠腮的时光和浪费的电力.以前有个客户提出要在RCP程序中添加一个bann ...

  9. 如何在Android Studio中添加RecyclerView-v7支持包

    1.打开SDK Manager,在Extras树下找到Android Support Library,下载好支持包.RecyclerView在v7-21版本就出来了.我这里不用更新了,说明是最新的,怎 ...

随机推荐

  1. 读入优化&输出优化

    读入优化 int read() { ; ') ; '; ') num=num*+c-'; return ff*num; } 输出优化 void write(int x) { ) { putchar(' ...

  2. mongodb启动命令与端口设置

    一.mongodb安装和配置 1.创建tools目录,用于存放安装包 cd /usr/local mkdir -p tools cd tools 2.下载mongodb包(其它版本请自行下载) wge ...

  3. server2003 IIS6.0 网站不可用

    事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到.本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息.您可能可以使用 /AUXSOURC ...

  4. AdaptIS: Adaptive Instance Selection Network

    AdaptIS: Adaptive Instance Selection Network 2019-09-19 12:58:07 Paper: https://arxiv.org/pdf/1909.0 ...

  5. el-cascader遇到一个坑的问题

    经仔细分析,如果二级和三级的value一样,就会出现这个问题.

  6. http使用formData方式传输文件请求

    转载请注明出处: 项目中有遇到http使用formData请求传输文件,在此记录一下 1.依赖jar包: <dependency> <groupId>org.apache.ht ...

  7. leetcode 266.Palindrome Permutation 、267.Palindrome Permutation II

    266.Palindrome Permutation https://www.cnblogs.com/grandyang/p/5223238.html 判断一个字符串的全排列能否形成一个回文串. 能组 ...

  8. Linux虚拟内存的作用

    要深入了解linux内存运行机制,需要知道下面提到的几个方面:首先,Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存 ...

  9. 【环境搭建与软件安装】windows系统基于Anaconda安装tensorflow-gpu

    https://github.com/tensorflow/tensorflow/issues/21832 原来是tensorflow-gpu-1.10.0,准备改为1.9.0试试,同样的问题: 应该 ...

  10. k8s Pod 扩容和缩容

    在生产环境下,在面临服务需要扩容的场景时,可以使用Deployment/RC的Scale机制来实现.Kubernetes支持对Pod的手动扩容和自动扩容. 手动扩容缩容 通过执行扩容命令,对某个dep ...