mperdeck/jsnlog.js

Logging objects with cyclic values

JanisE opened this issue · 1 comments

If an object is being logged that contains cyclic references (to itself or to one of its (sub-)properties), you get "TypeError: cyclic object value" (see http://stackoverflow.com/a/9382383/99904).

I would suggest replacing return new StringifiedLogObject(null, actualLogObject, JSON.stringify(actualLogObject)); with return new StringifiedLogObject(null, actualLogObject, JSON.stringify(JSON.decycle(actualLogObject))); to avoid the JS error and actually log something.

Thanks for your comment. I found that JSON.decycle is not supported by browsers, but sits in a separate library. So to give yourself and others the option to use this without complicating the library for those who don't need it, I created the option to set your own method for serializing objects.

This is now live (version 2.21.0)

A worked out example that calls decycle is at:
http://jsnlog.com/Documentation/HowTo/CyclicReferences