Hey folks, Have a look at ASTERISK-22699 [1] The issue pertains to allowing for ARI to write content to Asterisk's logs. I'd like to propose my ideas for how logging from ARI could be done. First, let's consider what an Asterisk log message looks like: [Oct 16 17:20:23] ERROR[20023] foo.c:666 I AM ERROR. The message consists of 6 parts: the timestamp, the level, the thread ID, the file name, the line number, and the message. Of these, the timestamp and thread ID should be filled in by Asterisk. The other four parts could potentially be fed into Asterisk by an ARI application. Moving on to the ARI method for logging to the Asterisk log, I think it should be something like: POST /asterisk/logMessage At a minimum, the parameters for this would be level: One of the Asterisk log levels (such as "error", "warning", "debug", etc.) message: The string to print to the log The minimum is nice in that it keeps the API call simple, but it has the downside of making your messages look like this: [Oct 16 17:20:23] WARNING[20023] ?:0 You're tearing me apart, Lisa! We could expand the method a bit by adding in a couple more parameters: fileName: The file name to place in the log message. lineNumber: The line number to place in the log message. This way, the previous log message would look like this instead: [Oct 16 17:20:23] WARNING[20023] cool_app.py:143 You're tearing me apart, Lisa! Expanding further, consider that log levels such as debug and verbose also have an additional integer value associated with them so that they are only printed depending on what you've set core debug or core verbose to. We could just make the assumption that all verbose and debug messages logged through ARI have a 0 for this value, or this integer value could be exposed as part of the ARI method as well. So what do you thing of this proposal? What degree of control would you prefer to have for writing log messages to Asterisk's logger? As a second discussion, consider that Asterisk, since 1.8 I believe, has had the concept of dynamic log levels. What this means is that a module can register a log level called "FOO" for instance, and log messages directed at that level would look like: [Oct 16 17:20:23] FOO[20023] bar.c:717 They're eating her! And then they're going to eat me! OH MY GOOOOOOOOOOOOOOOOOOD! This could be a useful concept for ARI in one of two possible ways. 1) The ARI implementation in Asterisk could register a log level at startup (called "ARI" possibly) that ARI app developers could write to in order to keep their messages at a different level from any of the other messages in the system. 2) We could expose an ARI call that would allow app developers to create their own dynamic log levels on the fly. For instance, you could have POST /asterisk/logLevel with the parameter level: The name of the level to register to Asterisk This way you could record different log messages at different dynamic log levels if you desired. Would dynamic log levels be useful for you in your applications? If so, would you prefer to have a dedicated "ARI" level to write to or would you prefer the ability to create your own levels to write to?