NS.log (ES5 logger) - v0
JSON.stringify is a dangerous function. It fails, and thus your function too, on cyclic objects, on very deep or big objects, or simply on objects having some forbidden accessor deeply cached.

This object can't be logged by your function, for example : 

var a = {}; a.b=a;


A related problem is that you only test the type of the external object. You don't detect the problem on this one :

var a = {parent:window};


What I would suggest is


either the addition of a try/catch (which may not be totally satisfying as some stringifications take time and memory before they fail),
to use or build another stringification function (see related SO question)
or simply to avoid the JSON format (of course it depends on your goal)