Source code for crash.subsystem.printk.plain_ringbuffer
# -*- coding: utf-8 -*-
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
import argparse
import re
from crash.util.symbols import Types, Symvals
from crash.subsystem.printk import LogInvalidOption
types = Types(['char *'])
symvals = Symvals(['log_buf', 'log_buf_len'])
[docs]
def plain_rb_filter(log: str, args: argparse.Namespace) -> str:
lines = log.split('\n')
if not args.m:
newlog = []
for line in lines:
if not args.m:
line = re.sub(r'^<[0-9]+>', '', line)
if args.t:
line = re.sub(r'^\[[0-9\. ]+\] ', '', line)
newlog.append(line)
lines = newlog
return '\n'.join(lines)
[docs]
def plain_rb_show(args: argparse.Namespace) -> None:
if symvals.log_buf_len and symvals.log_buf:
if args.d:
raise LogInvalidOption("Unstructured logs don't offer key/value pair support")
print(plain_rb_filter(symvals.log_buf.string('utf-8', 'replace'), args))