Guest User

Untitled

a guest
Jan 17th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.58 KB | None | 0 0
  1. <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %replace(%msg){'f k="pin">(.*?)</f','f k="pin">**********</f'}%n</pattern>
  2.  
  3. <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %replace(%msg){'pin=(.*?),','pin=**********,'}%n</pattern>
  4.  
  5. @Component("maskingPatternLayout")
  6. public class MaskingPatternLayout extends PatternLayout {
  7.  
  8. @Autowired
  9. private Environment env;
  10.  
  11. @Override
  12. public String doLayout(ILoggingEvent event) {
  13. String message=super.doLayout(event);
  14.  
  15. String patternsProperty = env.getProperty("bowdleriser.patterns");
  16.  
  17. if( patternsProperty != null ) {
  18. String[] patterns = patternsProperty.split("|");
  19. for (int i = 0; i < patterns.length; i++ ) {
  20. Pattern pattern = Pattern.compile(patterns[i]);
  21. Matcher matcher = pattern.matcher(event.getMessage());
  22. matcher.replaceAll("*");
  23. }
  24. } else {
  25. System.out.println("Bowdleriser not cleaning! Naughty strings are getting through!");
  26. }
  27.  
  28. return message;
  29. }
  30. }
  31.  
  32. <configuration>
  33. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  34. <encoder>
  35. <layout class="com.touchcorp.touchpoint.utils.MaskingPatternLayout">
  36. <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  37. </layout>
  38. </encoder>
  39. </appender>
  40.  
  41. <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  42. <file>logs/touchpoint.log</file>
  43. <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
  44. <fileNamePattern>logs/touchpoint.%i.log.zip</fileNamePattern>
  45. <minIndex>1</minIndex>
  46. <maxIndex>3</maxIndex>
  47. </rollingPolicy>
  48.  
  49. <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  50. <maxFileSize>10MB</maxFileSize>
  51. </triggeringPolicy>
  52. <encoder>
  53. <layout class="com.touchcorp.touchpoint.utils.MaskingPatternLayout">
  54. <pattern>%date{YYYY-MM-dd HH:mm:ss} %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
  55. </layout>
  56. </encoder>
  57. </appender>
  58.  
  59.  
  60. <logger name="com.touchcorp.touchpoint" level="DEBUG" />
  61. <logger name="org.springframework.web.servlet.mvc" level="TRACE" />
  62.  
  63. <root level="INFO">
  64. <appender-ref ref="FILE" />
  65. <appender-ref ref="STDOUT" />
  66. </root>
  67. </configuration>
  68.  
  69. public class MaskingPatternLayout extends PatternLayout {
  70.  
  71. private String patternsProperty;
  72.  
  73. public String getPatternsProperty() {
  74. return patternsProperty;
  75. }
  76.  
  77. public void setPatternsProperty(String patternsProperty) {
  78. this.patternsProperty = patternsProperty;
  79. }
  80.  
  81. @Override
  82. public String doLayout(ILoggingEvent event) {
  83. String message = super.doLayout(event);
  84.  
  85. if (patternsProperty != null) {
  86. String[] patterns = patternsProperty.split("\|");
  87. for (int i = 0; i < patterns.length; i++) {
  88. Pattern pattern = Pattern.compile(patterns[i]);
  89.  
  90. Matcher matcher = pattern.matcher(event.getMessage());
  91. if (matcher.find()) {
  92. message = matcher.replaceAll("*");
  93. }
  94. }
  95. } else {
  96.  
  97. }
  98.  
  99. return message;
  100. }
  101.  
  102. }
  103.  
  104. <appender name="fileAppender1" class="ch.qos.logback.core.FileAppender">
  105. <file>c:/logs/kp-ws.log</file>
  106. <append>true</append>
  107. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  108. <layout class="com.kp.MaskingPatternLayout">
  109. <patternsProperty>.*password.*|.*karthik.*</patternsProperty>
  110. <pattern>%d [%thread] %-5level %logger{35} - %msg%n</pattern>
  111. </layout>
  112. </encoder>
  113. </appender>
  114. <root level="DEBUG">
  115. <appender-ref ref="fileAppender1" />
  116. </root>
  117.  
  118. private String patternsProperty;
  119. private Optional<Pattern> pattern;
  120.  
  121. public String getPatternsProperty() {
  122. return patternsProperty;
  123. }
  124.  
  125. public void setPatternsProperty(String patternsProperty) {
  126. this.patternsProperty = patternsProperty;
  127. if (this.patternsProperty != null) {
  128. this.pattern = Optional.of(Pattern.compile(patternsProperty, Pattern.MULTILINE));
  129. } else {
  130. this.pattern = Optional.empty();
  131. }
  132. }
  133.  
  134. @Override
  135. public String doLayout(ILoggingEvent event) {
  136. final StringBuilder message = new StringBuilder(super.doLayout(event));
  137.  
  138. if (pattern.isPresent()) {
  139. Matcher matcher = pattern.get().matcher(message);
  140. while (matcher.find()) {
  141.  
  142. int group = 1;
  143. while (group <= matcher.groupCount()) {
  144. if (matcher.group(group) != null) {
  145. for (int i = matcher.start(group); i < matcher.end(group); i++) {
  146. message.setCharAt(i, '*');
  147. }
  148. }
  149. group++;
  150. }
  151. }
  152. }
  153. return message.toString();
  154. }
  155.  
  156. }
  157.  
  158. <appender name="fileAppender1" class="ch.qos.logback.core.FileAppender">
  159. <file>c:/logs/kp-ws.log</file>
  160. <append>true</append>
  161. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  162. <layout class="com.kp.MaskingPatternLayout">
  163. <patternsProperty>(password)|(karthik)</patternsProperty>
  164. <pattern>%d [%thread] %-5level %logger{35} - %msg%n</pattern>
  165. </layout>
  166. </encoder>
  167. </appender>
  168. <root level="DEBUG">
  169. <appender-ref ref="fileAppender1" />
  170. </root>
  171.  
  172. My username=test and password=*******
  173.  
  174. replace(p){r, t}
  175.  
  176. %replace( %replace(%msg){'regex1', 'replacement1'} ){'regex2', 'replacement2'}
Add Comment
Please, Sign In to add comment