{"action":"created","issue":{"url":"https://api.github.com/repos/meetecho/janus-gateway/issues/389","labels_url":"https://api.github.com/repos/meetecho/janus-gateway/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/meetecho/janus-gateway/issues/389/comments","events_url":"https://api.github.com/repos/meetecho/janus-gateway/issues/389/events","html_url":"https://github.com/meetecho/janus-gateway/pull/389","id":118220001,"number":389,"title":"janus buffered logging","user":{"login":"jayridge","id":107435,"avatar_url":"https://avatars.githubusercontent.com/u/107435?v=3","gravatar_id":"","url":"https://api.github.com/users/jayridge","html_url":"https://github.com/jayridge","followers_url":"https://api.github.com/users/jayridge/followers","following_url":"https://api.github.com/users/jayridge/following{/other_user}","gists_url":"https://api.github.com/users/jayridge/gists{/gist_id}","starred_url":"https://api.github.com/users/jayridge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayridge/subscriptions","organizations_url":"https://api.github.com/users/jayridge/orgs","repos_url":"https://api.github.com/users/jayridge/repos","events_url":"https://api.github.com/users/jayridge/events{/privacy}","received_events_url":"https://api.github.com/users/jayridge/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-11-21T20:51:05Z","updated_at":"2015-11-24T13:39:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/meetecho/janus-gateway/pulls/389","html_url":"https://github.com/meetecho/janus-gateway/pull/389","diff_url":"https://github.com/meetecho/janus-gateway/pull/389.diff","patch_url":"https://github.com/meetecho/janus-gateway/pull/389.patch"},"body":"\\+ @ploxiln \r\n\r\nA stab at buffered logging in janus core. A few notes.\r\n\r\n1. I took a look at glib async queues. The implementation was similar to this pull with extra overhead. Not implemented.\r\n1. The init sequence is likely not technically correct. The application logs before the signal handlers are installed or glib is initialized ( N.B. not required for modern versions ).\r\n1. There was no clear advantage to explicit buffers over glib dynamic strings. Resizing of the buffers would have followed the same model. Also, glib provides a platform agnostic vsprintf that does not reallocate if the buffer is bug enough.\r\n1. Reclamation of buffers is prioritized over lock avoidance. I do not anticipate lock contention here - we can test with mutex metering on."},"comment":{"url":"https://api.github.com/repos/meetecho/janus-gateway/issues/comments/159269957","html_url":"https://github.com/meetecho/janus-gateway/pull/389#issuecomment-159269957","issue_url":"https://api.github.com/repos/meetecho/janus-gateway/issues/389","id":159269957,"user":{"login":"lminiero","id":3684796,"avatar_url":"https://avatars.githubusercontent.com/u/3684796?v=3","gravatar_id":"","url":"https://api.github.com/users/lminiero","html_url":"https://github.com/lminiero","followers_url":"https://api.github.com/users/lminiero/followers","following_url":"https://api.github.com/users/lminiero/following{/other_user}","gists_url":"https://api.github.com/users/lminiero/gists{/gist_id}","starred_url":"https://api.github.com/users/lminiero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lminiero/subscriptions","organizations_url":"https://api.github.com/users/lminiero/orgs","repos_url":"https://api.github.com/users/lminiero/repos","events_url":"https://api.github.com/users/lminiero/events{/privacy}","received_events_url":"https://api.github.com/users/lminiero/received_events","type":"User","site_admin":false},"created_at":"2015-11-24T13:39:54Z","updated_at":"2015-11-24T13:39:54Z","body":"One more note: log.c must be added to the sources of ```janus-pp-rec``` as well, or otherwise there are several undefined references (the post processor uses the same debug mechanism as the core). This also means adding ```janus_log_init()``` and ```janus_log_destroy()``` calls in ```janus-pp-rec```, as otherwise no output is printed anymore."}}