Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
The issue
Hoover processing has a side effect modifying the LogRecord "msg" field.
The existing code handling a Log Record having a dict data as message is as follows:
convert the dict into json,
update the record.msg to reference that json ( modifying the original record)
delegating that record
Some OTHER log handler expecting the message as dict would fail,
It takes the record.msg which should have been a dict and since hoover has changed that, it is now a json.
The fix
Hoover use a modified shallow copy instead of actually modifying the log record.
Using python shallow clone copy.copy which is modified and used by hoover. The original LogRecord does not change.