NewRelicLogStrategy class

A LogStrategy implementation that sends logs to New Relic.

This strategy provides integration with New Relic's logging service, allowing for centralized log management and analysis. It supports structured logging with metadata and context information.

Features:

  • HTTP-based log transmission to New Relic
  • Structured logging with metadata
  • Batch processing for efficiency
  • Error handling and retry logic
  • Performance monitoring

Example:

var newrelicStrategy = NewRelicLogStrategy(
  licenseKey: 'your-newrelic-license-key',
  appName: 'my-app',
);
await logger.initialize(strategies: [newrelicStrategy]);
logger.log("Application started.");
Inheritance

Constructors

NewRelicLogStrategy({required String licenseKey, required String appName, String? host, String? environment, String newrelicUrl = 'https://log-api.newrelic.com/log/v1', int batchSize = 100, Duration batchTimeout = const Duration(seconds: 5), int maxRetries = 3, Duration retryDelay = const Duration(seconds: 1), bool useIsolate = true, LogLevel logLevel = LogLevel.none, List<LogEvent>? supportedEvents})
Constructs a NewRelicLogStrategy.

Properties

appName String
Application name.
final
batchSize int
Number of log entries to accumulate before sending a batch.
finalinherited
batchTimeout Duration
Maximum time to wait before sending an incomplete batch.
finalinherited
endpoint String
The HTTP endpoint URL to send log batches to.
no setteroverride
environment String?
Environment name (optional).
final
hashCode int
The hash code for this object.
no setterinherited
headers Map<String, String>
HTTP headers to include with each batch request.
no setteroverride
host String?
Host name (optional).
final
licenseKey String
Your New Relic license key.
final
loggerLogLevel LogLevel
The log level set by the logger using this strategy. Used to determine if a message should be logged.
getter/setter pairinherited
logLevel LogLevel
The minimum log level that this strategy handles for logging.
getter/setter pairinherited
maxRetries int
Maximum number of retry attempts for failed batch sends.
finalinherited
newrelicUrl String
New Relic API URL (defaults to US region).
final
performanceOperationName String
The performance monitor operation name for batch sends.
no setterinherited
retryDelay Duration
Base delay between retry attempts (multiplied by attempt number).
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
strategyName String
The name of this strategy, used in log messages for debugging.
no setteroverride
supportedEvents List<LogEvent>?
A list of specific LogEvent types that this strategy supports. If null, all events are considered supported.
getter/setter pairinherited
useIsolate bool
Whether this strategy should use isolates for heavy operations.
finalinherited

Methods

dispose() → void
Disposes the strategy and cleans up resources.
inherited
error(LogEntry entry) Future<void>
Logs an error.
inherited
fatal(LogEntry entry) Future<void>
Logs a fatal error.
inherited
flush() Future<void>
Forces sending of all pending logs.
inherited
formatLogEntry(LogEntry entry) Map<String, dynamic>
Formats a single LogEntry into a map suitable for the target API.
override
handleLog(LogEntry entry) Future<void>
Main log handler - override this single method for uniform handling of all log levels.
inherited
info(LogEntry entry) Future<void>
Logs an info message.
inherited
log(LogEntry entry) Future<void>
Logs a debug or general message.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
prepareBatchBody(List<Map<String, dynamic>> batch) Future<({List<int> body, Map<String, String> extraHeaders})>
Prepares the batch body bytes for sending.
override
shouldLog({LogEvent? event}) bool
Determines whether a log operation should proceed based on the event and log level.
inherited
toString() String
Provides a string representation of the strategy including its type and log level.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited