[ 
https://issues.apache.org/jira/browse/CASSANDRA-14059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joel Knighton updated CASSANDRA-14059:
--------------------------------------
    Status: Patch Available  (was: Open)

Patch here: 
[https://github.com/jkni/cassandra-dtest/commit/91e860da6b5959df02d14cc56b0d5c09a2926a83].
 This removes the field from the formatter and instead concatenates it to the 
message inside dtest logging functions. It also changes the way we construct 
the CURRENT_TEST global. In my testing, the test id already contained the 
method name, so method names were duplicated in log output.

There may be a convincing argument to removing the dtest.log logger 
configuration entirely. It appears to have been missing for some time without 
anyone noticing. For now, I introduced a behavior that's close to the original 
intention of the dtest.log, as far as I can tell.

> Root logging formatter broken in dtests
> ---------------------------------------
>
>                 Key: CASSANDRA-14059
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14059
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Testing
>            Reporter: Joel Knighton
>            Assignee: Joel Knighton
>            Priority: Minor
>
> Since the ccm dependency in dtest was bumped to {{3.1.0}} in 
> {{7cc06a086f89ed76499837558ff263d84337acba}}, when dtests are run with 
> --nologcapture, errors of the following form are printed:
> {code}
> Traceback (most recent call last):
>   File "/usr/lib64/python2.7/logging/__init__.py", line 861, in emit
>     msg = self.format(record)
>   File "/usr/lib64/python2.7/logging/__init__.py", line 734, in format
>     return fmt.format(record)
>   File "/usr/lib64/python2.7/logging/__init__.py", line 469, in format
>     s = self._fmt % record.__dict__
> KeyError: 'current_test'
> Logged from file dtest.py, line 485
> {code}
> This is because CCM no longer installs a basic root logger configuration, 
> which is probably a more correct behavior than what it did prior to this 
> change. Now, dtest installs its own basic root logger configuration which 
> writes to 'dtest.log' using the formatter {{'%(asctime)s,%(msecs)d %(name)s 
> %(current_test)s %(levelname)s %(message)s'}}. This means that anything 
> logging a message must provide the current_test key in its extras map. The 
> dtest {{debug}} and {{warning}} functions do this, but logging from 
> dependencies doesn't, producing these {{KeyError}}s. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to