You encounter problems sending data to New Relic with an application instrumented with the C SDK, but you are not sure what the cause is.
The New Relic C SDK and its daemon have their own logs:
- C SDK logs: These logs are generated due to errors in how you've instrumented your code using the New Relic C SDK API calls.
- Daemon logs: These are logs related to transmission of data to New Relic.
To help troubleshoot an issue, we recommend generating logs at their highest level:
- Set the C SDK log to
verboselevel and the daemon log to
- Run both logs for 5-10 minutes.
- After generating logs for troubleshooting, return logging for both the C SDK and daemon to their default levels.
Elevated logging levels can create large log files and have a performance impact. Generate logs at this level only as long as necessary for troubleshooting.
- C SDK logs
The C SDK has four log levels, as defined by the
libnewrelic.h. By default, logs are set to
NEWRELIC_LOG_INFOand output to standard error. Log levels include:
NEWRELIC_LOG_INFO (default) NEWRELIC_LOG_DEBUG NEWRELIC_LOG_ERROR NEWRELIC_LOG_VERBOSE
To set a different log level for troubleshooting purposes: Call
newrelic_configure_log()in your application code, and set a log level. For example:
- Daemon logs
The C SDK daemon has four log levels. By default, logs are set to
infoand output to standard error. Log levels include:
error warning info (default) debug
These log levels are invoked using flags from the command line:
--logfile <DAEMON_FILE_NAME>. Sets the path to the log file. --loglevel <LOG_LEVEL>. Sets the log level. Default: info.
To set a different log level for troubleshooting purposes: From the command line, set a different log level flag. For example:
./newrelic-daemon -f -logfile stdout -loglevel debug