{"action":"created","issue":{"url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/7","repository_url":"https://api.github.com/repos/apache/logging-log4j-kotlin","labels_url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/7/comments","events_url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/7/events","html_url":"https://github.com/apache/logging-log4j-kotlin/pull/7","id":388705265,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2OTA3OTI2","number":7,"title":"LOG4J-2518 LOG4J2-2433 Coroutines Support","user":{"login":"rocketraman","id":53049,"node_id":"MDQ6VXNlcjUzMDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/53049?v=4","gravatar_id":"","url":"https://api.github.com/users/rocketraman","html_url":"https://github.com/rocketraman","followers_url":"https://api.github.com/users/rocketraman/followers","following_url":"https://api.github.com/users/rocketraman/following{/other_user}","gists_url":"https://api.github.com/users/rocketraman/gists{/gist_id}","starred_url":"https://api.github.com/users/rocketraman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rocketraman/subscriptions","organizations_url":"https://api.github.com/users/rocketraman/orgs","repos_url":"https://api.github.com/users/rocketraman/repos","events_url":"https://api.github.com/users/rocketraman/events{/privacy}","received_events_url":"https://api.github.com/users/rocketraman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-12-07T15:40:49Z","updated_at":"2018-12-07T19:42:31Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/apache/logging-log4j-kotlin/pulls/7","html_url":"https://github.com/apache/logging-log4j-kotlin/pull/7","diff_url":"https://github.com/apache/logging-log4j-kotlin/pull/7.diff","patch_url":"https://github.com/apache/logging-log4j-kotlin/pull/7.patch"},"body":"Add support for coroutines by fixing [LOG4J-2518](https://issues.apache.org/jira/browse/LOG4J2-2518) and [LOG4J2-2433](https://issues.apache.org/jira/browse/LOG4J2-2433).\r\n\r\nSuspend functions inside lambda functions are supported by making the lambdas inline, and ThreadContext support is added to integrate the thread-local ThreadContext with coroutines context.\r\n\r\n@jvz Can you take a look please?"},"comment":{"url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/comments/445343651","html_url":"https://github.com/apache/logging-log4j-kotlin/pull/7#issuecomment-445343651","issue_url":"https://api.github.com/repos/apache/logging-log4j-kotlin/issues/7","id":445343651,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTM0MzY1MQ==","user":{"login":"rocketraman","id":53049,"node_id":"MDQ6VXNlcjUzMDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/53049?v=4","gravatar_id":"","url":"https://api.github.com/users/rocketraman","html_url":"https://github.com/rocketraman","followers_url":"https://api.github.com/users/rocketraman/followers","following_url":"https://api.github.com/users/rocketraman/following{/other_user}","gists_url":"https://api.github.com/users/rocketraman/gists{/gist_id}","starred_url":"https://api.github.com/users/rocketraman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rocketraman/subscriptions","organizations_url":"https://api.github.com/users/rocketraman/orgs","repos_url":"https://api.github.com/users/rocketraman/repos","events_url":"https://api.github.com/users/rocketraman/events{/privacy}","received_events_url":"https://api.github.com/users/rocketraman/received_events","type":"User","site_admin":false},"created_at":"2018-12-07T19:42:31Z","updated_at":"2018-12-07T19:42:31Z","author_association":"MEMBER","body":"> Now if we could use some sort of compiler feature or macros to implement the caller info, then we can safely inline a lot of things while also supporting caller info without much of a performance penalty.\r\n\r\nYeah, I'm pretty sure the Kotlin compiler plugin capabilities that are upcoming will allow us to do this.\r\n\r\n> I'm mostly concerned about preserving caller location info where possible since some people rely on that feature\r\n\r\nAs per my other comment, this seems to work fine with the inlining, with the exception of the runInTrace methods. However, those are broken because `ExtendedLogger` does not expose running `traceExit` and `catching` with the FQCN, and was already a know issue/limitation. I had already opened https://issues.apache.org/jira/browse/LOG4J2-2275 to track this.\r\n\r\n> Feel free to implement that way you're describing.\r\n\r\nGreat, I'll work on that over the next couple of days."}}
{"actor":{"display_login":"rocketraman"}}