LogBack.xml文件配置
LogBack.xml⽂件配置
Logback-spring.xml配置⽂件
1、⽇志级别:⽇志级别从低到⾼分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,例如:如果设置为WARN,则低于WARN
的信息都不会输出
2、根节点:configuration
configuration 有三个可选属性:
a、scan属性:⽤来设置配置⽂件变动时是否重新加载,值是true\false,默认是true即配置变动时重新加载
b、scanperiod属性:⽤来设置每隔多久检查⼀次配置是否变动,默认是1分钟,默认单位是毫秒
c、debug属性:⽤来设置是否将logback内部的⽇志打印出来,即启动时输出配置加载信息。值为true\false 默认为false
3、property节点:
设置要使⽤的或者共⽤的变量,property包含两个属性name和value;其中name的值是变量的名称,value的值是变量所代表的值。
定义的值可以使⽤“${变量名}”到logger上下⽂中。
4、springProperty节点
该标签的⼯作⽅式类似于Logback的标准标签。但是,value您⽆需指定direct,⽽是指定source属性的(来⾃Environment)。
如果需要将属性存储在local范围之外的其他位置,则可以使⽤该scope属性。
如果需要后备值(如果未在中设置属性Environment),则可以使⽤defaultValue属性。
5.appender节点
appender节点可以有多个,分别针对不同的包或者类做不同的输出,
如果appender输出到⽂件时,可以设置append⼦节点值true/false,是末尾追加⽇志还是替换⽇志,值为true时表⽰追加。
可以在appender中使⽤filter节点(过滤器),在此节点内过滤⽇志级别(使⽤level节点指定),过滤后会返回⼀个枚举值,
即DENY,NEUTRAL,ACCEPT其中之⼀:
A、返回DENY,⽇志将⽴即被抛弃不再经过其他过滤器;
B、返回NEUTRAL,有序列表⾥的下个过滤器接着处理⽇志;
C、返回ACCEPT,⽇志会被⽴即处理,不再经过剩余过滤器
如果需要使⽤这些值做处理时,需要使⽤onMatch(level级别或⼤于level级别的)和onMismatch(级别⼩于level级别的)
6、logger节点
⽤来设置某⼀个包或者具体的某⼀个类的⽇志打印级别、以及指定appender。logger仅有⼀个name属性和两个可选的level、addtivity属
性。
Name属性:⽤来指定受此logger约束的某⼀个包或者具体的某⼀个类。
Level属性:⽤来设置打印级别,⼤⼩写⽆关:TRACE, DEBUG, INFO, WARN, ERROR
如果未设置此属性,那么当前logger将会继承上级的级别。
Addtivity属性:⽤来设置是否向上级logger传递打印信息。默认是true。
logger可以包含零个或多个appender-ref元素,标识这个appender将会添加到这个logger
7、root节点
也是元素,但是它是根logger。只有⼀个level属性,因为已经被命名为"root".
level:⽤来设置打印级别,⼤⼩写⽆关:TRACE, DEBUG, INFO, WARN, ERROR。默认是DEBUG。
root可以包含零个或多个appender-ref元素,标识这个appender将会添加到这个logger
8、pattern节点定义的输出模式解释
%d{HH:mm:ss.SSS} 当前时间; [%thread] [当前线程名称]
%-5level logger级别
%logger{36} logger名称
-%msg%n 定义的输出
%line 输出⽇志的⾏号
%n 换⾏
%date和%d{yyyy-MM-dd HH:mm:ss.SSS} 当前时间包含年⽉⽇
{%C.java:%L} 输出⽇志所在的java类、所在⾏及路径可以替换[%thread]
9、appender下的filter的常见种类
在logback中,过滤器可以添加到Appender上。通过添加⼀个或多个过滤器到Appender,你可以通过任意条件,
⽐如:⽇志内容、MDC内容、时间等等⽇志的任何部分,过滤⽇志事件。
级别过滤器
级别过滤器()是基于准确匹配⽇志级别。如果⽇志级别等于配置的级别,过滤器通过配置中的OnMatch与OnMismatch属性决定是接受还
是拒绝事件。
阀值过滤器
阀值过滤器()过滤低于指定阀值的事件。当事件中的⽇志级别⼤于等于指定阀值时,过滤器的decide⽅法返回NEUTRAL。然⽽,拒绝⽇志
级别⼩于阀值的事件。
条件过滤器
条件过滤器()是⼀种封装了EventEvaluator的通过过滤器。像名字代表的,条件过滤器是根据判断事件是否符合指定条件来分别返回
OnMatch与OnMismatch属性⾥的值。
注意:EventEvaluator是⼀个抽象类,通过继承它,你可以实现你⾃⼰的条件逻辑。
附上配置⽂件模板:
%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n
${log.path}/info.log
${log.path}/%d{yyyy-MM}/info.%d{yyyy-MM-dd}.%i.log
20MB
30
true
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
info
${log.path}/debug.log
${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log
20MB
30
true
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
debug
${log.path}/error.log
${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log
20MB
30
true
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
error
解决springbootyml配置logging.level报错问题
解决springbootyml配置logging.level报错问题
如下所⽰:
logging:
config: classpath:spring-logback.xml
pattern:
console: "%d - %msg%n"
level: info
直接写 level: info 会报错:
org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to
java.util.Map
...
Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of
converting from type [ng.String] to type [java.util.Map]
...
解决⽅法 :加个root
logging:
config: classpath:spring-logback.xml
pattern:
console: "%d - %msg%n"
level:
root: info
运⾏成功
以上这篇解决springboot yml配置 logging.level 报错问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望
⼤家多多⽀持。
mdc java 简书
mdc java 简书
MDC Java 简书
一、介绍
在软件开发领域,MDC(Mapped Diagnostic Context)是一种用于记录日志并跟踪线程上下文信息的技术。它可以帮助开发人员更好地理解和调试应用程序,提高代码的可读性和可维护性。本文将简要介绍MDC Java的基本概念和用法。
二、MDC Java的基本概念
MDC Java是基于日志框架的一个功能,常见的日志框架如log4j、logback等都支持MDC功能。MDC的原理是通过使用线程局部变量来存储和传递上下文信息。在多线程环境中,MDC会为每个线程维护独立的上下文信息,确保不同线程之间的信息不会混淆。
三、MDC Java的用法
使用MDC Java的第一步是导入相应的日志框架依赖。以logback为例,可以在项目的pom.xml文件中添加以下依赖:
```xml
ch.qos.logback
logback-classic
1.2.3
```
在代码中,可以使用MDC的静态方法来设置和获取上下文信息。例如,可以使用`MDC.put(key, value)`方法来设置一个键值对,然后使用`MDC.get(key)`方法来获取对应的值。
MDC的典型应用场景之一是在分布式系统中进行日志追踪。通过在请求处理过程中设置唯一的请求ID,可以将同一个请求的日志信息关联起来,方便后续的故障排查和性能分析。
四、MDC Java的优势
相比于传统的日志输出方式,MDC Java有以下优势:
1. 线程安全:MDC会为每个线程维护独立的上下文信息,避免不同线程之间的信息混淆。
2. 可扩展性:MDC可以轻松集成到各种日志框架中,具有较强的灵活性和可扩展性。
3. 便捷性:使用MDC Java可以在代码中方便地设置和获取上下文信息,不需要手动传递参数或在日志输出中插入冗余信息。
五、总结
本文简要介绍了MDC Java的基本概念和用法。MDC Java是一种用于记录日志并跟踪线程上下文信息的技术,可以帮助开发人员更好地理解和调试应用程序。通过合理使用MDC Java,可以提高代码的可读性和可维护性,提升软件开发的效率和质量。
javamelody 使用方法
第 1 页 共 7 页 javamelody 使用方法
【实用版3篇】
目录(篇1)
I.javamelody 简介
II.如何安装 javamelody
III.javamelody 的使用方法
IV.如何配置 javamelody
V.javamelody 的性能
VI.javamelody 的总结
正文(篇1)
I.javamelody 简介
javamelody 是一款用于监控 Java 应用程序性能的开源工具。它能够收集应用程序的各种指标,如响应时间、错误率等,并提供友好的界面展示这些数据。
II.如何安装 javamelody
要安装 javamelody,您需要遵循以下步骤:
1.将 javamelody 添加到您的项目的依赖中。您可以在 Maven 或
Gradle 中添加以下依赖:
```xml
u003cdependencyu003e
u003cgroupIdu003eorg.javamelodyu003c/groupIdu003e
u003cartifactIdu003ejavamelody-coreu003c/artifactIdu003e 第 2 页 共 7 页 u003cversionu003e1.9u003c/versionu003e
u003c/dependencyu003e
```
III.javamelody 的使用方法
要使用 javamelody,您需要执行以下步骤:
1.在您的应用程序中添加以下代码:
```java
Mamelody.METER("my-meter"); // 定义一个度量器,并为其命名
Mamelody.监控(MyClass.class); // 监控 MyClass 类的性能指标
```
2.在您的应用程序启动时启动 javamelody:
```bash
java -jar javamelody-1.9.jar --prefix=/path/to/application
maven-assembly-plugin插件的使用方法
maven-assembly-plugin插件的使⽤⽅法
⼀. Assembly 是什么意思?
⼆. maven-assembly-plugin是什么?
它是maven中针对打包任务⽽提供的标准插件。
三. maven-assembly-plugin插件的作⽤?
摘⾃官⽹:/plugins/maven-assembly-plugin/
英⽂原⽂:The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its
dependencies,
modules, site documentation, and other files into a single distributable archive.
中⽂翻译:Assembly 插件的主要作⽤是,允许⽤户将项⽬输出与它的依赖项、模块、站点⽂档、和其他⽂件⼀起组装成⼀个可分发的归档⽂件。 (翻译不⼀定准确,以英⽂为准)
四.maven-assembly-plugin插件在maven项⽬中如何使⽤(即使⽤步骤)?
1. 需要指定⼀个Assembly描述符⽂件。该⽂件指定了打包格式,包含的⽂件/过滤的⽂件等信息,可以同时指定多个描述符⽂件,打包成
不同的格式。
2. 在Maven⼯程的pom.xml⽂件⾥配置maven-assembly-plugin插件,引⼊Assembly描述符⽂件。
五. maven项⽬中Assembly描述符⽂件详解
⽰例:
xmlns="/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="/2001/XMLSchema-instance"
(新版)如何生成2018新定额EZB、EKZ、ETB、备案XML全流程电子标格式文件
如何生成2018新定额EZB、EKZ、ETB等全流程电子标格式文件
尊敬的新点软件用户:
为了方便大家更好地使用新点软件10.X版本编制和生成2018新定额全流程电子标18ezb、18ekz、18etb、XML备案,特地做以下操作流程介绍:
(新点软件10。X版本为您的2018新定额保驾护航)
1、首先,10。X版本软件必须要是最新版的,目前,10.X最新版是03版本:
新点_2013清单造价_安徽版_V10.0.0。03
必须要新建项目,不管是一个单位工程还是多个单位工程,一律新建项目,因为新建项目的功能要远远大于新建单位工程.
单项工程后缀是。emahx、单位工程后缀是.epahx
(单项工程后缀)
(单位工程后缀)
新建项目的时候专业类别一定要选好,新定额要求一个工程类别对应一个单位工程,原则上一条定额对应一条清单。2018新定额规范要求一个单位工程原则上只有一个专业或者工程类别、一个专业的措施费、一个专业的不可竞争费模板,所以新建项目的时候只需要将工程类别选择好即可,不需要在后面单独设置别的专业的管理费、利润或者措施费费率。 举个例子,比如A工程比较特殊,是以土建专业为主,略带个别装饰专业的定额,那么新建项目的时候选择土建专业里面的工程模板,并且,管理费、利润费率、措施项目以及不可竞争费项目都要以土建作为基准专业模块.如果B工程是以市政专业为主,略带个别土建专业的定额,那么新建项目要以市政专业作为基准专业模块。如果C工程里面同时含有土建和装饰专业,并且土建和装饰专业的报价差不多,那么就要将C工程里面的土建和装饰分别新建单位工程“D-土建工程”、“E—装饰工程".
2、工程做完以后需要进行项目自检。不管是编制招标控制价还是做投标报价,做完项目以后都要进行项目自检,我们新点10.X版本提供的项目自检功能比较完善,可以最大限度地免除您在招标、投标、备案、审计等多个环节的后顾之忧.
3、生成2018新定额18ezb招标文件:点击“项目”→“生成招标"即可。
SpringBootLogback实现输出到Logstash或文件的动态切换
SpringBootLogback实现输出到Logstash或⽂件的动态切换
开发过程中,⽇志⼀般都是直接输出到logstash,不过这都是⼏年前的玩法了。⽣产环境⼀般都是通过Filebeat去收集⽇志,不采⽤应⽤直连logstash的⽅式。为了实现快速切
换,因此在项⽬的application.yml中添加个开关,直接通过开关切换输出到⽂件还是logstash
⼀、实现思路
(1)application.yml添加⼀个开关项
(2)logback-spring.xml 中取application.yml的开关项值
(3)logback-spring.xml 对 开关值进⾏判断,⽤if 标签动态加载
⼆、具体实现
(1)application.yml
(2) logback-spirng.xml
(3)参数值传递流转图
软件生产环境部署文档
生产环境部署文档:
1. 生产环境地址
待定
2. 部署路径
待定
3. 修改application.yml配置文件
a. 修改日志输出路径
logging:
config: classpath:logback.xml
file: 依据生产环境而定
path: 依据生产环境而定
b. 修改Eureka地址
eureka:
client:
serviceUrl:
defaultZone: 依据生产环境而定
c. 修改本服务名
spring:
application:
name: 依据生产环境而定
d. 修改数据库地址,用户名,密码
datasource:
url:生产环境数据库地址
username: 数据库用户名
password: 数据库用户密码
e. 修改服端口
server:
port: 依据生产环境而定
4. 修改base.jsp
如果需要对接zull服务则修改base.jsp,注释开发环境,放开生产环境,截图如下:
如果需要对接zull服务修改启动类:
注释掉filterDemo4Registration和businessSystemFilter方法。
截图如下:
5. 修改合约规划提交审批调用地址
SubmitExamineAndApproveImpl类getParameter接口修改为生产地址;
6. 修改合同详情和费用详情查看地址
demoContractParticulars.js 文件第61行,63行,135行,137行上的地址改为生产环境地址;
7. 启动和停止
启动:进入生产环境war包的存放地址输入命令:nohup java -jar CBSJK-0.0.1-SNAPSHOT.war &
停止:输入命令:netstat -nlp|grep 8800然后 kill -9 端口号。杀死当前进程
SOLR中文教程
1/7/2015 版权所有,侵权必究All rights reserved 第1页,共58页Page 1 , Total58
SOLR中文帮助文档
2010-10 1/7/2015 版权所有,侵权必究All rights reserved 第2页,共58页Page 2 , Total58
目 录
1 概述 .......................................................................................................................................... 4
1.1 企业搜索引擎方案选型 ....................................................................................................... 4
1.2 Solr的特性 .......................................................................................................................... 4
1.2.1 Solr使用Lucene并且进行了扩展 ................................................................................... 4
1.2.2 Schema(模式) .......................................................................................................... 5
1.2.3 查询 ............................................................................................................................... 5
logback:root和logger
logback:root和logger
root可以理解为⼀个根节点,⽽其他的logger都可以看做root的⼦节点
所以默认root配置的appender属性logger都是使⽤的,如果不想使⽤可以logger定义时增加属性additivity="false"ps:
因为上述关系,在class类使⽤getLogger("name/class")引⼊logger时,如果"name/class"未在配置⽂件中找到,则默认使⽤root配置
如果匹配到"name/class",则使⽤匹配到的appender配置的输出,同时可⾃⾏选择是否关闭root配置的appender输出
在程序中经常使⽤LoggerFactory.getLogger(Test.class);其实这种最终转换的logger名成就是Test所在包路径+Test。logback会以这种名称在logback.xml中找相匹配的logger
ps:package net.jy.redis.controller.logback;
public class LogbackController { private final static Logger logger = LoggerFactory.getLogger(LogbackController.class);
此处代码省略。。。}
logback.xml
%d[%level]%M:%m%n
此时⽇志输出的内容就是以stdout的appender格式输出
java中log的使用方法
- 1 - java中log的使用方法
在软件开发过程中,日志记录是一项非常重要的任务。在Java中,我们可以使用Log来记录应用程序的运行信息,以便在应用程序出现问题时进行排查和调试。
本文将介绍Java中Log的使用方法,包括Log的基本概念、Log的级别、Log的输出方式、Log的配置以及常见的Log框架。
一、Log的基本概念
Log是指记录应用程序运行过程中的各种信息,包括错误信息、警告信息、调试信息等等。Log记录的信息可以帮助我们在应用程序出现问题时进行排查和调试。在Java中,我们可以使用Java自带的Log API来记录日志信息。
Java中的Log API包括以下几个类:
1. Logger:用于记录日志信息的主要类。可以通过Logger类的静态方法获取Logger实例,然后使用Logger实例记录日志信息。
2. Level:用于指定日志记录的级别。Java中的Log API提供了7个级别,从低到高分别是:ALL、FINEST、FINER、FINE、CONFIG、INFO、WARNING、SEVERE、OFF。
3. Handler:用于指定日志记录的输出方式。Java中的Log API提供了多种Handler,包括ConsoleHandler、FileHandler、SocketHandler等等。
二、 Log的级别
在Java中,日志记录的级别分为7个等级,从低到高分别是ALL、 - 2 - FINEST、FINER、FINE、CONFIG、INFO、WARNING、SEVERE、OFF。不同的级别代表着不同的日志记录方式。
1. ALL:记录所有级别的日志信息。
2. FINEST:记录最详细的日志信息,包括非常细节的信息。
3. FINER:记录比FINEST略低级别的日志信息。
