/// <summary> /// INTERNAL API. /// /// Used by actors / infrastructure that are starting up around the same time as the RemoteTransport /// is being booted, and therefore can cause problems similar to https://github.com/akkadotnet/akka.net/issues/4677 at startup. /// </summary> /// <param name="context">The context used to configure the logging adapter.</param> /// <param name="logMessageFormatter">The formatter used to format log messages.</param> /// <returns>The newly created logging adapter.</returns> internal static ILoggingAdapter GetLoggerStartup(this IActorContext context, ILogMessageFormatter logMessageFormatter = null) { try { return(context.GetLogger(logMessageFormatter)); } catch // had a failure, don't want to propagate it. Just start the logger without remote context { var logSource = LogSource.Create(context); return(new BusLogging(context.System.EventStream, logSource.Source, logSource.Type, logMessageFormatter ?? new DefaultLogMessageFormatter())); } }
/// <summary> /// Creates a new logging adapter that writes to the specified logging bus. /// </summary> /// <param name="loggingBus">The bus on which this logger writes.</param> /// <param name="logSourceObj">The source that produces the log events.</param> /// <param name="logMessageFormatter">The formatter used to format log messages.</param> /// <returns>The newly created logging adapter.</returns> public static ILoggingAdapter GetLogger(LoggingBus loggingBus, object logSourceObj, ILogMessageFormatter logMessageFormatter = null) { var logSource = LogSource.Create(logSourceObj); return(new BusLogging(loggingBus, logSource.Source, logSource.Type, logMessageFormatter ?? new DefaultLogMessageFormatter())); }
/// <summary> /// Creates a new logging adapter using the specified system's event stream. /// </summary> /// <param name="system">The system used to configure the logging adapter.</param> /// <param name="logSourceObj">The source that produces the log events.</param> /// <param name="logMessageFormatter">The formatter used to format log messages.</param> /// <returns>The newly created logging adapter.</returns> public static ILoggingAdapter GetLogger(ActorSystem system, object logSourceObj, ILogMessageFormatter logMessageFormatter = null) { var logSource = LogSource.Create(logSourceObj, system); return(new BusLogging(system.EventStream, logSource.Source, logSource.Type, logMessageFormatter ?? new DefaultLogMessageFormatter())); }
/// <summary> /// Creates a new logging adapter using the specified context's event stream. /// </summary> /// <param name="context">The context used to configure the logging adapter.</param> /// <param name="logMessageFormatter">The formatter used to format log messages.</param> /// <returns>The newly created logging adapter.</returns> public static ILoggingAdapter GetLogger(this IActorContext context, ILogMessageFormatter logMessageFormatter = null) { var logSource = LogSource.Create(context, context.System); return(new BusLogging(context.System.EventStream, logSource.Source, logSource.Type, logMessageFormatter ?? new DefaultLogMessageFormatter())); }