On Tue, Aug 23, 2011 at 9:29 AM, Roy Smith <r...@panix.com> wrote: > I want to log a string but only the first bunch of it, and add "..." > to the end if it got truncated. This certainly works: > > log_message = message > if len(log_message) >= 50: > log_message = log_message[:50] + '...' > logger.error("FAILED: '%s', '%s', %s, %s" % (log_message, > route, params, e.code)) > > but it bugs me that there should be some cleaner way to do this. I'm > fantasizing about something along the lines of: > > logger.error("FAILED: '%s{50}', '%s', %s, %s" % (message, > route, params, e.code)) > > does anything like this exist?
You can specify a maximum width to truncate the string to, but I don't see any built-in way to add an elision indication (e.g. "..."). >>> "%.4s" % "spam and eggs" 'spam' >>> "{:.4s}".format("spam and eggs") 'spam' You could define something to wrap strings and override __format__() or similar, but that seems like overkill. Cheers, Chris -- http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list