В Xamarin Forms я использую Serilog и Seq sink для входа в систему в режиме реального времени с устройств на мой сервер seq (в помещении).
Я ищу библиотеку Native Android (Android Studio) Logger, чтобыЯ могу войти в режиме реального времени с устройств на мой seq-сервер (в помещении).
Я не нашел ни одной библиотеки, которая давала бы мне возможность "впасть" в seq. Я думал о создании некоторого JSON и отправке его на мой seq сервер, но затем мне нужно будет также реализовать буфер (например, для записи в журнал в автономном режиме).
Вот пример кода из моего XamarinПриложение Forms (я хотел бы сделать нечто подобное в Native Android (Java) в Android Studio).
Затем я могу вызвать функцию «Информация» для записи уровня информации в seq
private readonly Serilog.ILogger _logger;
public Logger()
{
_seqLevelSwitch = new LoggingLevelSwitch(LogEventLevel.Information);
_logger = new LoggerConfiguration()
.WriteTo.Seq("<MySeqServer>", bufferBaseFilename:bufferedPath, bufferSizeLimitBytes: 20971520, controlLevelSwitch:_seqLevelSwitch)
.CreateLogger();
}
public void Information(string message, EntryType entryType = EntryType.None, [CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0)
{
sourceFilePath = sourceFilePath.Replace("\\", "/");
_logger.ForContext(GetEnrichers(entryType)).Information($"{message}-{System.IO.Path.GetFileNameWithoutExtension(sourceFilePath)}:{memberName}:{sourceLineNumber}");
}
private IEnumerable<ILogEventEnricher> GetEnrichers(EntryType entryType)
{
var enrichers = new List<ILogEventEnricher>
{
new PropertyEnricher("Identifier", Config.UniqueID),
new PropertyEnricher("Version", Config.Version),
new PropertyEnricher("Manufacturer", Config.Manufacturer),
new PropertyEnricher("Device", Config.Device),
new PropertyEnricher("Release", Config.Release),
new PropertyEnricher("Culture", Config.Culture)
};
if (entryType != EntryType.None)
{
enrichers.Add(new PropertyEnricher("EntryType", entryType));
}
return enrichers;
}
}