<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_OpenKit_logging</id>
	<title>Ключ-АСТРОМ OpenKit logging - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_OpenKit_logging"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_OpenKit_logging&amp;action=history"/>
	<updated>2026-05-11T14:14:20Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_OpenKit_logging&amp;diff=6111&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «Существует два разных способа ведения логов с помощью '''OpenKit''':  * Настройка '''OpenKit''' для ис...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_OpenKit_logging&amp;diff=6111&amp;oldid=prev"/>
		<updated>2026-01-19T22:01:22Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Существует два разных способа ведения логов с помощью &amp;#039;&amp;#039;&amp;#039;OpenKit&amp;#039;&amp;#039;&amp;#039;:  * Настройка &amp;#039;&amp;#039;&amp;#039;OpenKit&amp;#039;&amp;#039;&amp;#039; для ис...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Существует два разных способа ведения логов с помощью '''OpenKit''':&lt;br /&gt;
&lt;br /&gt;
* Настройка '''OpenKit''' для использования встроенного консольного логгера.&lt;br /&gt;
* Настройка '''OpenKit''' для использования собственной реализации логгера.&lt;br /&gt;
&lt;br /&gt;
== Ведение логов через консольный логгер ==&lt;br /&gt;
'''OpenKit''' включает в себя консольный логгер. По умолчанию все сообщения об ошибках или предупреждениях записываются в консоль &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt;. При установке уровня логирования регистрируются все события логирования с тем же или более высоким уровнем.&lt;br /&gt;
&lt;br /&gt;
'''OpenKit''' использует следующие уровни логирования:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Уровень лога&lt;br /&gt;
!Приоритет&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|Debug&lt;br /&gt;
|0&lt;br /&gt;
|Для отладки и разработки. Не рекомендуется для использования в производственной среде из-за большого объема записей в логах.&lt;br /&gt;
|-&lt;br /&gt;
|Info&lt;br /&gt;
|10&lt;br /&gt;
|Общий алгоритм работы OpenKit.&lt;br /&gt;
|-&lt;br /&gt;
|Warning&lt;br /&gt;
|20&lt;br /&gt;
|В библиотеке OpenKit обнаружены предупреждения, в том числе проблемы с использованием API.&lt;br /&gt;
|-&lt;br /&gt;
|Error&lt;br /&gt;
|30&lt;br /&gt;
|Ошибки, которые не могут быть обработаны OpenKit.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Java&lt;br /&gt;
|OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .withLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events&lt;br /&gt;
&lt;br /&gt;
    .build();&lt;br /&gt;
|-&lt;br /&gt;
!.NET&lt;br /&gt;
|IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .WithLogLevel(LogLevel.DEBUG) // enable Debug, Info, Warning, and Error log events&lt;br /&gt;
&lt;br /&gt;
    .Build();&lt;br /&gt;
|-&lt;br /&gt;
!C++&lt;br /&gt;
|std::shared_pointer&amp;lt;openkit::IOpenKit&amp;gt; openKit =&lt;br /&gt;
&lt;br /&gt;
    openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
        .withLogLevel(LogLevel::LOG_LEVEL_DEBUG) // enable Debug, Info, Warning, and Error log events&lt;br /&gt;
&lt;br /&gt;
        .build();&lt;br /&gt;
|-&lt;br /&gt;
!C&lt;br /&gt;
|struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);&lt;br /&gt;
&lt;br /&gt;
useDefaultLogLevelForConfiguration(configurationHandle, LOGLEVEL_DEBUG);&lt;br /&gt;
&lt;br /&gt;
struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle);&lt;br /&gt;
|-&lt;br /&gt;
!JavaScript&lt;br /&gt;
|const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .withLogLevel(LogLevel.Debug) // enable Debug, Info, Warning, and Error log events&lt;br /&gt;
&lt;br /&gt;
    .build();&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ведение логов с помощью пользовательского логгера ==&lt;br /&gt;
Вы также можете настроить '''OpenKit''' с использованием собственной реализации логгера. Реализуйте собственный логгер для записи сообщений '''OpenKit''', используя выбранную вами систему логирования.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Java&lt;br /&gt;
!.NET&lt;br /&gt;
|-&lt;br /&gt;
|import com.astromkey.openkit.api.Logger;&lt;br /&gt;
&lt;br /&gt;
class MyCustomLoggerImpl implements Logger {&lt;br /&gt;
&lt;br /&gt;
  // implement interface methods&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Logger customLogger = new MyCustomLoggerImpl();&lt;br /&gt;
&lt;br /&gt;
OpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .withLogger(customLogger)&lt;br /&gt;
&lt;br /&gt;
    .build();&lt;br /&gt;
|using astromkey.OpenKit.API.ILogger;&lt;br /&gt;
&lt;br /&gt;
class MyCustomLoggerImpl : ILogger&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  // implement interface methods&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ILogger customLogger = new MyCustomLoggerImpl();&lt;br /&gt;
&lt;br /&gt;
IOpenKit openKit = new astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .WithLogger(customLogger)&lt;br /&gt;
&lt;br /&gt;
    .Build();&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!C++&lt;br /&gt;
!C&lt;br /&gt;
|-&lt;br /&gt;
|class MyCustomLoggerImpl : public openkit::ILogger&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  // implement interface methods&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
std::shared_ptr&amp;lt;openkit::ILogger&amp;gt; customLogger = std::make_shared&amp;lt;MyCustomLoggerImpl&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
std::shared_pointer&amp;lt;openkit::IOpenKit&amp;gt; openKit =&lt;br /&gt;
&lt;br /&gt;
    openkit::astromkeyOpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
      .withLogger(customLogger)&lt;br /&gt;
&lt;br /&gt;
      .build();&lt;br /&gt;
|bool levelEnabledFunction(LOG_LEVEL level)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    // return true if level is enabled, false otherwise&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void logFunction(LOG_LEVEL level, const char* traceStatement)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    // write trace statement&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// create custom logger&lt;br /&gt;
&lt;br /&gt;
struct LoggerHandle* loggerHandle = createLogger(&amp;amp;levelEnabledFunction, &amp;amp;logFunction);&lt;br /&gt;
&lt;br /&gt;
// create OpenKit configuration and assign logger handle&lt;br /&gt;
&lt;br /&gt;
struct OpenKitConfigurationHandle* configurationHandle = createOpenKitConfiguration(endpointURL, applicationID, deviceID);&lt;br /&gt;
&lt;br /&gt;
useLoggerForConfiguration(configurationHandle, loggerHandle);&lt;br /&gt;
&lt;br /&gt;
struct OpenKitHandle* openKitHandle = createastromkeyOpenKit(configurationHandle);&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!JavaScript&lt;br /&gt;
|-&lt;br /&gt;
|class MyCustomLoggerFactory implements LoggerFactory {&lt;br /&gt;
&lt;br /&gt;
  // implement interface methods&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const customLogger = new MyCustomLoggerFactory();&lt;br /&gt;
&lt;br /&gt;
const openKit = new OpenKitBuilder(endpointURL, applicationID, deviceID)&lt;br /&gt;
&lt;br /&gt;
    .withLoggerFactory(customLogger)&lt;br /&gt;
&lt;br /&gt;
    .build();&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>