Ключ-АСТРОМ OpenKit logging

Материал из Документация Ключ-АСТРОМ

Существует два разных способа ведения логов с помощью OpenKit:

  • Настройка OpenKit для использования встроенного консольного логгера.
  • Настройка OpenKit для использования собственной реализации логгера.

Ведение логов через консольный логгер

OpenKit включает в себя консольный логгер. По умолчанию все сообщения об ошибках или предупреждениях записываются в консоль stdout. При установке уровня логирования регистрируются все события логирования с тем же или более высоким уровнем.

OpenKit использует следующие уровни логирования:

Уровень лога Приоритет Описание
Debug 0 Для отладки и разработки. Не рекомендуется для использования в производственной среде из-за большого объема записей в логах.
Info 10 Общий алгоритм работы OpenKit.
Warning 20 В библиотеке OpenKit обнаружены предупреждения, в том числе проблемы с использованием API.
Error 30 Ошибки, которые не могут быть обработаны OpenKit.
Java OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

    .withLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events

    .build();

.NET IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

    .WithLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events

    .Build();

C++ std::shared_pointer<openkit::IOpenKit> openKit =

    openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

        .withLogLevel(LogLevel::LOG_LEVEL_DEBUG) // enable Debug, Info, Warning, and Error log events

        .build();

C struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);

useDefaultLogLevelForConfiguration(configurationHandle, LOGLEVEL_DEBUG);

struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle);

JavaScript const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID)

    .withLogLevel(LogLevel.Debug) // enable Debug, Info, Warning, and Error log events

    .build();

Ведение логов с помощью пользовательского логгера

Вы также можете настроить OpenKit с использованием собственной реализации логгера. Реализуйте собственный логгер для записи сообщений OpenKit, используя выбранную вами систему логирования.

Java .NET
import com.astromkey.openkit.api.Logger;

class MyCustomLoggerImpl implements Logger {

  // implement interface methods

}

Logger customLogger = new MyCustomLoggerImpl();

OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

    .withLogger(customLogger)

    .build();

using astromkey.OpenKit.API.ILogger;

class MyCustomLoggerImpl : ILogger

{

  // implement interface methods

}

ILogger customLogger = new MyCustomLoggerImpl();

IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

    .WithLogger(customLogger)

    .Build();

C++ C
class MyCustomLoggerImpl : public openkit::ILogger

{

  // implement interface methods

};

std::shared_ptr<openkit::ILogger> customLogger = std::make_shared<MyCustomLoggerImpl>();

std::shared_pointer<openkit::IOpenKit> openKit =

    openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)

      .withLogger(customLogger)

      .build();

bool levelEnabledFunction(LOG_LEVEL level)

{

    // return true if level is enabled, false otherwise

}

void logFunction(LOG_LEVEL level, const char* traceStatement)

{

    // write trace statement

}

// create custom logger

struct LoggerHandle* loggerHandle = createLogger(&levelEnabledFunction, &logFunction);

// create OpenKit configuration and assign logger handle

struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);

useLoggerForConfiguration(configurationHandle, loggerHandle);

struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle);

JavaScript
class MyCustomLoggerFactory implements LoggerFactory {

  // implement interface methods

}

const customLogger = new MyCustomLoggerFactory();

const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID)

    .withLoggerFactory(customLogger)

    .build();