搜索词>>Pattern 耗时0.0050
  • hibernate validator 正则表达式报错javax.validation.constraints.Pattern

    hibernate validator 正则表达式报错HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'.HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'.
  • Spring Boot Logback 输出日志慢8小时解决

    找到encoder的pattern节点找到encoder的pattern节点。        <encoder>            <charset>UTF-8</charset>            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%-4relative] %-5level %logger{30} - %msg%n</pattern>        </encoder>在日期%d{yyyy-MM-dd HH:mm:ss} 里面添加时区,%d{yyyy-MM-dd HH:mm:ss,CTT} 其中(CTT代表上海)修改后如下:        <encoder>            <charset>UTF-8</charset>            <pattern>%d{yyyy-MM-dd HH:mm:ss,CTT} [%-4relative] %-5level %logger{30} - %msg%n</pattern>        </encoder> ​​​​​​​
  • Log4j2 常用 Pattern 格式

    概述下面的log4j2转换模式仅供参考,这样您和我就不会在每次创建/编辑log4j配置文件时浪费时间来构建这些模式概述下面的log4j2转换模式仅供参考,这样您和我就不会在每次创建/编辑log4j配置文件时浪费时间来构建这些模式。我正在使用下面的日志语句来生成日志:LOGGER.debug("Debug Message Logged !!"); LOGGER.info("Info Message Logged !!");接下来,我将列出不同的日志模式及其各自生成的输出。%d [%p] %c{1} – %m%n 使用它进行简单的日志记录,即日期,级别,记录器,消息。 它将生成以下输出: 2020-06-20 19:18:02,958 [DEBUG] Log4j2HelloWorldExample - Debug Message Logged !! 2020-06-20 19:18:02,959 [INFO] Log4j2HelloWorldExample - Info Message Logged !!%d [%-6p] %c{1} – %m%n使用它可以以漂亮的打印记录器级别进行简单的记录。 它将生成以下输出: 2020-06-20 19:21:05,271 [DEBUG ] Log4j2HelloWorldExample - Debug Message Logged !! 2020-06-20 19:21:05,272 [INFO ] Log4j2HelloWorldExample - Info Message Logged !!%d [%-6p] %c{1} – %m%n使用它来打印完整的包装级别。 它将生成以下输出:2020-06-20 19:22:05,379 [DEBUG ] com.leftso.log4j2.examples.Log4j2HelloWorldExample - Debug Message Logged !! 2020-06-20 19:22:05,380 [INFO ] com.leftso.log4j2.examples.Log4j2HelloWorldExample - Info Message Logged !!%d [%-6p] %c{3} – %m%n用它最多可打印两个级别的包装。 它将生成以下输出: 2020-06-20 19:23:48,202 [DEBUG ] log4j2.examples.Log4j2HelloWorldExample - Debug Message Logged !! 2020-06-20 19:23:48,204 [INFO ] log4j2.examples.Log4j2HelloWorldExample - Info Message Logged !!%d{yyyy/MM/dd HH:mm:ss,SSS} [%-6p] %c{1} – %m%n将其用于自定义日期格式。 它将生成以下输出:2020/06/20 19:24:45,076 [DEBUG ] Log4j2HelloWorldExample - Debug Message Logged !! 2020/06/20 19:24:45,078 [INFO ] Log4j2HelloWorldExample - Info Message Logged !!%d [%-6p] %C{1}.%M(%F:%L) – %m%n将其用于调用方类,方法,源文件和行号。 它将生成以下输出: 2020-06-20 19:25:42,249 [DEBUG ] Log4j2HelloWorldExample.methodOne(Log4j2HelloWorldExample.java:14) - Debug Message Logged !! 2020-06-20 19:25:42,251 [INFO ] Log4j2HelloWorldExample.methodOne(Log4j2HelloWorldExample.java:15) - Info Message Logged !!%sn %d{yyyy/MM/dd HH:mm:ss,SSS} %r [%-6p] [%t] %c{3} %C{3}.%M(%F:%L) – %m%n使用它来捕获上面讨论的所有内容。 它将生成以下输出: 1 2020/06/20 19:27:03,595 620 [DEBUG ] [main] log4j2.examples.Log4j2HelloWorldExample log4j2.examples.Log4j2HelloWorldExample.main(Log4j2HelloWorldExample.java:14) - Debug Message Logged !! 2 2020/06/20 19:27:03,597 622 [INFO ] [main] log4j2.examples.Log4j2HelloWorldExample log4j2.examples.Log4j2HelloWorldExample.main(Log4j2HelloWorldExample.java:15) - Info Message Logged !!随时根据需要更改和使用任何格式。
  • Spring Boot 配置映射本地资源访问

    Spring Boot 配置映射本地资源访问注意配置为两个spring.mvc.static-path-pattern= spring.resources.static-locations=这两个配置的默认值是:spring.mvc.staSpring Boot 配置映射本地资源访问注意配置为两个spring.mvc.static-path-pattern= spring.resources.static-locations=这两个配置的默认值是:spring.mvc.static-path-pattern=/** spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 解释一下:这两个的默认配置意思是请求来了 /路径下的,先去找spring.resources.static-locations配置的几个目录下有没用静态的资源文件。访问各个目录的优先级为从左到右由高到低。问题来了,我们如果想添加一个本地的绝对路径映射该怎么配置呢?spring.resources.static-locations=classpath:/static,D:/sharew我最初以为这样就可以了,然而后面的配置并没有生效。。。。。注意!注意!注意!要像下面这样配置才能生效。spring.resources.static-locations=classpath:/static,file:D:/share
  • 正则表达式验证邮箱也可以不填写

    正则表达式验证邮箱也可以不填写内容,就是可选项邮箱验证得正则表达式为@Pattern(regexp = "^$|^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$",正则表达式验证邮箱也可以不填写内容,就是可选项邮箱验证得正则表达式为@Pattern(regexp = "^$|^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$",message = "请填写正确的邮箱号码") private String email;注意上面是Java得写法,如果其他语言需注意双反斜杠
  • Spring AOP 切面表达式语法详解

    简述由于Spring切面粒度最小是达到方法级别,而execution表达式可以用于明确指定方法返回类型,类名,方法名和参数名等与方法相关的部件,并且在Spring中,大部分需要使用AOP的业务场景也只需要达到方法级别即可,因而executi简述由于Spring切面粒度最小是达到方法级别,而execution表达式可以用于明确指定方法返回类型,类名,方法名和参数名等与方法相关的部件,并且在Spring中,大部分需要使用AOP的业务场景也只需要达到方法级别即可,因而execution表达式的使用是最为广泛的。表达式组成基础语法结构如下是execution表达式的语法:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)这里问号表示当前项可以有也可以没有,其中各项的语义如下:modifiers-pattern:方法的可见性,如public,protected;ret-type-pattern:方法的返回值类型,如int,void等;declaring-type-pattern:方法所在类的全路径名,如com.spring.Aspect;name-pattern:方法名类型,如buisinessService();param-pattern:方法的参数类型,如java.lang.String;throws-pattern:方法抛出的异常类型,如java.lang.Exception;如下是一个使用execution表达式的例子:execution(public * com.spring.service.BusinessObject.businessService(java.lang.String,..))上述切点表达式将会匹配使用public修饰,返回值为任意类型,并且是com.spring.BusinessObject类中名称为businessService的方法,方法可以有多个参数,但是第一个参数必须是java.lang.String类型的方法。上述示例中我们使用了..通配符。关于通配符的类型主要有两种:* 通配符,该通配符主要用于匹配单个单词,或者是以某个词为前缀或后缀的单词。.. 通配符,该通配符表示0个或多个项,主要用于declaring-type-pattern和param-pattern中,如果用于declaring-type-pattern中,则表示匹配当前包及其子包,如果用于param-pattern中,则表示匹配0个或多个参数* 通配符案例如下示例表示返回值为任意类型,在com.spring.service.BusinessObject类中,并且参数个数为零的方法:execution(* com.spring.service.BusinessObject.*())下述示例表示返回值为任意类型,在com.spring.service包中,以Business为前缀的类,并且是类中参数个数为零方法:execution(* com.spring.service.Business*.*()).. 通配符案例如下示例表示匹配返回值为任意类型,并且是com.spring.service包及其子包下的任意类的名称为businessService的方法,而且该方法不能有任何参数:execution(* com.spring.service..*.businessService())这里需要说明的是,包路径service...businessService()中的..应该理解为延续前面的service路径,表示到service路径为止,或者继续延续service路径,从而包括其子包路径;后面的.businessService(),这里的*表示匹配一个单词,因为是在方法名前,因而表示匹配任意的类。如下示例是使用..表示任意个数的参数的示例,需要注意,表示参数的时候可以在括号中事先指定某些类型的参数,而其余的参数则由..进行匹配:execution(* com.spring.service.BusinessObject.businessService(java.lang.String,..))
  • java编程中正则表达式'并且'的写法

    java编程中正则表达式'并且'的写法java编程中正则表达式'并且'的写法 <pre> <code class="language-java">package com.leftso; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { try { String str1="<a href=\"jjjjkkkkccc\" title='测试'></a><a title='xxx'></a>"; // String reg1="\\s*href\\s*=\\s*['|\"](.*)['|\"]";//字符串中不包含a和d String reg2="\\s*href\\s*=\\s*['|\"]([^('|\"|>)]*)['|\"]";//[^('|\"|>)]代表不是'且不是"且不是> Pattern pattern1=Pattern.compile(reg1); Pattern pattern2=Pattern.compile(reg2); Matcher matcher1=pattern1.matcher(str1); if(matcher1.find()){ System.out.println("不含且关系>>"+matcher1.group(1)); } Matcher matcher2=pattern2.matcher(str1); if(matcher2.find()){ System.out.println("包含且关系>>"+matcher2.group(1)); } } catch (Exception e) { e.printStackTrace(); } } } </code></pre> <br /> 执行结果:<br /> <img alt="执行结果" class="img-thumbnail" src="/assets/upload/blog/thumbnail/2017-04/6cdb040c-f401-40af-a391-32b9ed3363d0.png" /><br /> <span style="color:#FF0000"><strong>多个并且关系就是[^(1|2|3|4|..)]这样达到且的效果,其中1234..表示且的多个条件</strong></span>
  • Log4j2 多个 appenders 使用详解

    概述给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考概述给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考。 这还将配置动态日志根路径。Log4j 多个 appenders 配置log4j简单配置如下,它做了这些事儿:使用将在其中创建日志文件的动态日志根路径。 将环境变量传递为-DAPP_LOG_ROOT = c:/ temp进行配置。 演示例子在配置文件中定义的属性常量的用法,例如 LOG_PATTERN在下面的文件中。 它使用LevelRangeFilter将不同的日志级别语句记录在不同的文件中,即将调试日志记录在一个文件中并将错误日志记录在单独的文件中。所有日志也将显示在控制台中。$title(log4j2.xml) <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT" follow="true"> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log" filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log"> <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log" filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" > <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log" filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log" > <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="springLog" fileName="${sys:APP_LOG_ROOT}/spring.log" filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log" > <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="1"/> </RollingFile> <RollingFile name="aopLog" fileName="${sys:APP_LOG_ROOT}/application-aop.log" filePattern="${sys:APP_LOG_ROOT}/application-aop-%d{yyyy-MM-dd}-%i.log" > <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="1"/> </RollingFile> </Appenders> <Loggers> <Logger name="com.howtodoinjava.app.aop" additivity="false"> <AppenderRef ref="aopLog" /> <AppenderRef ref="Console" /> </Logger> <Logger name="com.howtodoinjava.app" additivity="false"> <AppenderRef ref="debugLog" /> <AppenderRef ref="infoLog" /> <AppenderRef ref="errorLog" /> <AppenderRef ref="Console" /> </Logger> <Logger name="org.springframework" additivity="false"> <AppenderRef ref="springLog" /> <AppenderRef ref="Console"/> </Logger> <Root level="all"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>代码段 小部件
  • log4j配置_log4j2的LevelRangeFilter使用详解_log4j使用

    log4j使用,log4j框架在java编程中还是比较常见的,这里将会讲解通过log4j2的LevelRangeFilter将不同级别log存放不同文件中。一.如何使用log4j本文将讲解如何使用log4j的LevelRangeFilter过滤器,如果LogEvent中的级别处于配置的最小和最大级别的范围内,则返回onMatch,否则返回onMismatch二.log4j LevelRangeFilter 使用例子在log4j2.xml配置文件中,我们使用LevelRangeFilter去过滤日志的等级通过以下的方式:所有info级别的日志将会保存到application-log4j-info.log 文件中所有debug级别的日志将会保存到application-log4j-debug.log 文件中所有error级别日志将会保存到application-log4j-error.log 文件中当然你也可以根据自己的项目进行对log4j的最低等级日志和最高日志等级进行配置,即配置log4j的minLevel和maxLevel属性<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30">       <Properties>         <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>     </Properties>       <Appenders>           <Console name="Console" target="SYSTEM_OUT" follow="true">             <PatternLayout pattern="${LOG_PATTERN}"/>         </Console>                   <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log"             filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log">               <!-- Matches only DEBUG level -->             <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>               <PatternLayout pattern="${LOG_PATTERN}"/>             <Policies>                 <SizeBasedTriggeringPolicy size="19500KB" />             </Policies>             <DefaultRolloverStrategy max="10"/>         </RollingFile>                   <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log"             filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" >               <!-- Matches only INFO level -->             <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/>               <PatternLayout pattern="${LOG_PATTERN}"/>             <Policies>                 <SizeBasedTriggeringPolicy size="19500KB" />             </Policies>             <DefaultRolloverStrategy max="10"/>         </RollingFile>                   <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log"             filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log">               <!-- Matches only ERROR level -->             <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>               <PatternLayout pattern="${LOG_PATTERN}"/>             <Policies>                 <SizeBasedTriggeringPolicy size="19500KB" />             </Policies>             <DefaultRolloverStrategy max="10"/>         </RollingFile>               </Appenders>       <Loggers>               <Logger name="com.leftso.app" additivity="false">             <AppenderRef ref="debugLog" />             <AppenderRef ref="infoLog"  />             <AppenderRef ref="errorLog" />             <AppenderRef ref="Console"  />         </Logger>                                  <Root level="all">             <AppenderRef ref="Console"/>         </Root>       </Loggers>   </Configuration>
  • Log4j2 LevelRangeFilter 使用详解

    概述了解如何使用log4j LevelRangeFilter过滤器,如果LogEvent中的级别在配置的最小和最大级别范围内,则返回onMatch结果,否则返回onMismatch值概述了解如何使用log4j LevelRangeFilter过滤器,如果LogEvent中的级别在配置的最小和最大级别范围内,则返回onMatch结果,否则返回onMismatch值。LevelRangeFilter 例子在给定的log4j2.xml文件中,我们已经习惯了LevelRangeFilter来过滤日志级别,方法是:所有信息级别的日志将转到application-info.log文件。所有调试级别的日志都将转到application-debug.log文件。 所有错误级别的日志都将转到application-error.log文件。 可以根据您的项目需求随意更改minLevel和maxLevel属性。 $title(log4j2.xml) <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT" follow="true"> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log" filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log"> <!-- Matches only DEBUG level --> <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log" filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" > <!-- Matches only INFO level --> <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log" filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log"> <!-- Matches only ERROR level --> <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </Appenders> <Loggers> <Logger name="com.howtodoinjava.app" additivity="false"> <AppenderRef ref="debugLog" /> <AppenderRef ref="infoLog" /> <AppenderRef ref="errorLog" /> <AppenderRef ref="Console" /> </Logger> <Root level="all"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>​​​​​​​代码段 小部件