log4j patternLayout, почему pattern - эффективность% replace составляет около 2.0 для замены - PullRequest
0 голосов
/ 05 ноября 2018

Проект должен избегать чувствительных слов при печати журнала в файл, Я считаю, что первый способ примерно в 2 раза быстрее второго, но я не понимаю, почему это происходит;

Я нахожу единственное различие между вторым способом и первым, что один «заменить» находится в объекте форматирования, а другой - в замене объекта

Пожалуйста, ребята, помогите мне ответить на этот вопрос; Мой английский слабый, спасибо.

        <!-- the first way -->
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %level %l  %replace{%m}{([1][3,4,5,7,8][0-9])[0-9]{5}([0-9]{3})|([^\d][1-9]{1})(\d{18}|\d{14}[^\d])|([^\d][1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][^\d])|([1-9]{1})(\d{18}|\d{15})|(([\u4E00-\u9FA5]+省|[\u4E00-\u9FA5]+市)([\u4E00-\u9FA5]+市|[\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)([\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)?([a-zA-Z0-9\u4E00-\u9FA5]+))|(赵|钱|孙|李|周|吴|郑|王|冯|陈|楮|卫|蒋|沈|韩|杨|朱|秦|尤|许)[\u4E00-\u9FA5]{1,3}}{****}%n " />     -->


        <!-- the second way -->
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %level %l %m%n " >  
            <replace regex="([1][3,4,5,7,8][0-9])[0-9]{5}([0-9]{3})|([^\d][1-9]{1})(\d{18}|\d{14}[^\d])|([^\d][1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][^\d])|([1-9]{1})(\d{18}|\d{15})|(([\u4E00-\u9FA5]+省|[\u4E00-\u9FA5]+市)([\u4E00-\u9FA5]+市|[\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)([\u4E00-\u9FA5]+区|[\u4E00-\u9FA5]+区)?([a-zA-Z0-9\u4E00-\u9FA5]+))|(赵|钱|孙|李|周|吴|郑|王|冯|陈|楮|卫|蒋|沈|韩|杨|朱|秦|尤|许)[\u4E00-\u9FA5]{1,3}"  replacement= "****"/>
        </PatternLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...