Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: JSON logging ?

Reply
Thread Tools

Re: JSON logging ?

 
 
Bart Thate
Guest
Posts: n/a
 
      12-12-2012
Ha ! spoke too soon.

Was reading this:
http://docs.python.org/2/howto/logging-cookbook.htm<http://docs.python.org/2/howto/logging-cookbook.html>
which
explains it all ;]

Place to be is the LogRecordStreamHandler ;]

Something to play with, first trying out to get a communication channel
running over DCC CHAT ...



On Wed, Dec 12, 2012 at 8:17 PM, Bart Thate <(E-Mail Removed)> wrote:

> Thanks for your reply Chris,
>
> good to be updated on the pickle stuff, too bad it is still not safe for
> use. But hee i prefer JSON above pickle anyways so ;]
>
> As to using the logging package to send JSON dict over, the logging stuff
> should be able to be converted to handle that. Just 2 things that need to
> be changes. The logging package basically sends over an dict as well..
>
> makePickle on the SocketHandler in order to send JSON instead of pickled
> stuff
>
> def makePickle(self, record):
> """
> Pickles the record in binary format with a length prefix, and
> returns it ready for transmission across the socket.
> """
> ei = record.exc_info
> if ei:
> # just to get traceback text into record.exc_text ...
> dummy = self.format(record)
> # See issue #14436: If msg or args are objects, they may not be
> # available on the receiving end. So we convert the msg % args
> # to a string, save it as msg and zap the args.
> d = dict(record.__dict__)
> d['msg'] = record.getMessage()
> d['args'] = None
> d['exc_info'] = None
> s = pickle.dumps(d, 1)
> slen = struct.pack(">L", len(s))
> return slen + s
>
> and this function on the receiving end to convert the JSON stuff back to a
> logging record (want to hook more stuff into this function, such that the
> send JSON is converted into an events that gets send to my callback
> handlers.)
>
> def makeLogRecord(dict):
> """
> Make a LogRecord whose attributes are defined by the specified
> dictionary,
> This function is useful for converting a logging event received over
> a socket connection (which is sent as a dictionary) into a LogRecord
> instance.
> """
> rv = _logRecordFactory(None, None, "", 0, "", (), None, None)
> rv.__dict__.update(dict)
> return rv
>
> What i don't see though is where the receiving code recides ?
> How am i supposed to handle logrecords that are coming from remote, as
> better phrased maybe .. where can i hook my (changed) makeLogRecord into ?
>
> Thnx for the reply dude, helps me enormously ;]
>
> Bart
>
>
>
> On Wed, Dec 12, 2012 at 6:33 PM, Chris Rebert <(E-Mail Removed)> wrote:
>
>> On Dec 11, 2012 7:33 AM, "Bart Thate" <(E-Mail Removed)> wrote:
>> <snip>
>>
>> > pickle uses eval still ? or is is considered safe now ? i was told not

>> to use eval() stuff on data.
>>
>> I don't believe pickle uses eval() per se, but per the red warning box in
>> its docs, it's still not safe when given untrusted input. IIRC, among other
>> things, in order to unpickle non-built-in classes, it is capable of
>> performing imports; this feature is rife for abuse by an adversary.
>>

>
>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Lib to generate XML/JSON[P] output from a DTD/XSD/JSON Schema/etc Acácio Centeno Python 1 02-15-2013 07:34 AM
I am facing an issue while decoding json string using json.loads sajuptpm Python 2 12-28-2012 07:16 AM
JSON logging ? Bart Thate Python 0 12-11-2012 03:32 PM
[ANN] Security Fix json-1.1.7 for json_pure and json gems Florian Frank Ruby 0 06-30-2009 05:18 PM
"JSON for ASP" at json.org Tuğrul Topuz ASP General 1 06-27-2008 11:37 PM



Advertisments