{"head":"b9aa72e4ff54c25b0e3eb9a27fd176927bb6c091","size":2,"push_id":45435236,"shas":[["22d3dd6630231b584d831d7e3bebbdc62cc936cf","c8ac7dc5db74563cb5bfd20a40a19e85c9ad66e3@gmail.com","Fix profiler when executed without a callback.","Zack Bloom"],["b9aa72e4ff54c25b0e3eb9a27fd176927bb6c091","c8ac7dc5db74563cb5bfd20a40a19e85c9ad66e3@gmail.com","Add startTimer method to allow async profiling.\n\nWhen the profile method is used, ids are used to link the start and\nend of the profiling.  Multiple simultaneous calls can result in the\nprofiling occuring in the wrong order.  E.g.:\n\nfunction a(){\n  winston.profile('X');\n  setTimeout(function(){\n    winston.profile('X');\n  }, 1000);\n}\n\na();\na();\n\nWill result in both profiles reporting instantaneous results.\n\nstartTimer is a new logger function which returns an object\ncorresponding to a specific timing.  done is called to finish the\ntimer and log the duration E.g.:\n\ntimer = winston.startTimer()\nsetTimeout(function(){\n  timer.done(\"Logging message\");\n}, 1000);","Zack Bloom"]],"ref":"refs/heads/master"}