> If the user doesn't need those values and can provide cheap substitutes, > perhaps their computation can be avoided. I did that recently by inlining > only the parts of logging.LogRecord.__init__ in a subclass and avoided > calling logging.LogRecord.__init__ altogether. It generated lots of > instance variables we never use and just slowed things down.
Well, that approach is fine if you need maximal performance. If those values set in LogRecord.__init__ can be computed more cheaply than they are at present, please give an idea as to where speedups can be applied, or even supply a patch ;-) If you don't need many of the values set by LogRecord.__init__, then your approach is fine (until someone decides they want something which is documented and tries to access it via a specific format string - which could be done, in the general case, via configuration changes). The use case I'm supporting with this is one where some/most/all of the default attributes are wanted, and also additional user-defined ones in some special cases. With the proposed scheme the extra value is passed to LogRecord constuction code so it could be used by your custom LogRecord initialiser with the same benefit as in the general case (I think). Regards, Vinay Sajip _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com