-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable logging to stdout #35
Comments
The docs should do a better job here I agree. Arsenic uses structlog so for now please check their documentation on how to control output. |
Quick fix def set_arsenic_log_level(level = logging.WARNING):
# Create logger
logger = logging.getLogger('arsenic')
# We need factory, to return application-wide logger
def logger_factory():
return logger
structlog.configure(logger_factory=logger_factory)
logger.setLevel(level) |
I am encountering the same issue and can not manage to disable all logging to stdout even after reading the structlog manual. |
I finally found the way to do it, it is actually quite simple (and present in the API doc):
|
In my case, I wanted to preserve logging by just trimming long values in methods like screenshot. class DictTrimmerProcessor:
def __init__(self, max_chars=25) -> None:
self.max_chars = max_chars
self.block_length = max_chars // 2 - 1
def __call__(self, logger, method_name, event_dict):
for field in event_dict:
if isinstance(event_dict[field], dict):
val = deepcopy(event_dict[field]) # Copy so that original event_dict is not changed
for key in val:
if isinstance(val[key], str) and len(val[key]) > self.max_chars:
val[key] = f"{val[key][:self.block_length]}...{val[key][-self.block_length:]}"
event_dict[field] = val
return event_dict
def fix_arsenic_log():
processors = structlog.get_config().get("processors", [])
processors.insert(0, DictTrimmerProcessor())
structlog.configure(processors=processors) Hope someone finds this helpful since this issue is first on google when searching for logging problems in arsenic. |
Using Python 3.10.7 and arsenic 21.8 on Windows 10 here. The confusing part is that arsenic, geckodriver and Firefox all emit info logs to the console, so I had do to quite a few things to turn the noise off:
I hope this will help someone, and I hope the arsenic developers will give us an option to turn off the logs in future releases |
Library prints a lot of information to stdout, full page code when navigating / making screenshots. It's not clear from documentation how to disable these logs
The text was updated successfully, but these errors were encountered: