[ https://issues.apache.org/jira/browse/IGNITE-8570?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy Pavlov updated IGNITE-8570: ----------------------------------- Fix Version/s: (was: 2.6) 2.7 > Create lighter version of GridStringLogger > ------------------------------------------ > > Key: IGNITE-8570 > URL: https://issues.apache.org/jira/browse/IGNITE-8570 > Project: Ignite > Issue Type: Improvement > Affects Versions: 2.4 > Reporter: Andrey Kuznetsov > Assignee: Alexey Kuznetsov > Priority: Major > Fix For: 2.7 > > > _+Problem with current GridStringLogger implementation+_: > Most usages of {{GridStringLogger}} in test assumes the following scenario. > First, it is set as a logger for some Ignite node. > Then, after some activity on that node, log content is searched for some > predefined strings. > {{GridStringLogger}} uses {{StringBuilder}} of bounded size internally to > store log contents, older contents gets dropped on exaustion. > Thus, changes that add more logging may damage some independent tests that > use {{GridStringLogger}}. > > +_The suggestion for new implementation:_+ > The suggestion is to implement and use another test logger conforming to > these requirements: > * It does not accumulate any logs(actually, it will print no logs to > anywhere) > * It allows to set the listener that fires when log message matches certain > regular expression, {{Matcher}} can be passed to the listener > > _+Proposed design+_, pseudocode: > ``` > Class GridRegexpLogger implements IgniteLogger{ > … > debug(String str){ > if (/* str matches pattern. */) > \{ /* notify listeners. */ } > } > … > listen("regexp", loggerListener) > { /* registers listener. */ } > listenDebug("regexp", loggerListener) > { /* registers listener for debug output only. */ } > … > waitFor("regexp", timeout) > { /* like GridTestUtils.waitForCondition(), waits for regexp to occure in > logs. */ } > … > } > ``` > +_Sample regexp logger usage_+: > ``` > GridRegexpLogger logger; > logger.listen(“regexp”, new GridRegexpListener()); > logger.waitFor("regexp", 100); > ``` -- This message was sent by Atlassian JIRA (v7.6.3#76005)