We’re logging our requests to Loggly with the messageLogging policy. This is what it looks like:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging async="false" continueOnError="false" enabled="true" name="messageLogging">
<DisplayName>messageLogging</DisplayName>
<FaultRules/>
<Properties/>
<BufferMessage>false</BufferMessage>
<Syslog async="true">
<FormatMessage>true</FormatMessage>
<Host>logs-01.loggly.com</Host>
<Message>[xxxxx tag="xxxx"]
{messageLogging} </Message>
<Port>6514</Port>
<Protocol>TCP</Protocol>
<SSLInfo>
<Ciphers/>
<ClientAuthEnabled>false</ClientAuthEnabled>
<Enabled>true</Enabled>
<IgnoreValidationErrors>false</IgnoreValidationErrors>
<Protocols/>
</SSLInfo>
</Syslog>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<logLevel>INFO</logLevel>
<NotificationIntervalInSec>0</NotificationIntervalInSec>
</MessageLogging>
Apigee automatically adds some variables to the syslog call, among which is the current timestamp. This timestamp looks like this:
2018-10-03T14:18:11.011+0000
The problem we ran into is that the milliseconds in the timestamp are always the same as the seconds. Here is a handful of calls in a trace of a few seconds:
2018-10-03T14:18:09.009+0000 xxx
2018-10-03T14:18:11.011+0000 xxx
2018-10-03T14:18:11.011+0000 xxx
2018-10-03T14:18:12.012+0000 xxx
2018-10-03T14:18:12.012+0000 xxx
We would expect the milliseconds to refer to the actual milliseconds of the timestamp.