I'm using Python standard logging module with custom formatter where I limit length of some fields. It uses standard %
Python operator.
I can apply limit for percent-formatted string like this (this limits length to 10 chars):
>>> "%.10s" % "Lorem Ipsum"
'Lorem Ipsu'
Is it possible to trim it from the beginning, so the output is 'orem Ipsum'
(without manipulating right-side argument)?
This can easily be done through slicing, so you do not require any string format manipulation to do your JOB
I had the same question and came up with this solution using LogRecordFactory.
Here I am truncating the name to 10 characters and storing it in the attribute sname, which can be used as any other value.
It is possible to store the truncated name in record.name, but I wanted to keep the original name around too.
Is it possible to trim it from the beginning with % formatting?
Python's % formatting comes from C's printf.
Note that the
.
indicates precision for a float. That it works on a string is a mere side effect, and unfortunately, there is no provision in the string formatting specification to accommodate stripping a string from the left to a fixed max width.Therefore if you must strip a string to a fixed width from the end, I recommend to slice from a negative index. This operation is robust, and won't fail if the string is less than 10 chars.
str.format
also no helpstr.format
is of no help here, the width is a minimum width:(The asterisk, "
*
", is the fill character.)