Логирование на клиенте

Для отправки данных на клиент нужно добавить следующий скрипт в index.html файла:

<script src="http://vnext/mlk/audit/scripts.js"></script>

, где http://vnext/mlk имя базового сервиса.

Особенности скрипта:

  • для передачи данных запрос должен быть авторизован
  • требуется передавать объект в определенном формате

Пример:

var provider = new __audit({ // (1)
baseUrl: 'http://vnext/mlk',
login: AuthProvider.getUserName(),
token: AuthProvider.getToken(),
app_id: 'my-app'
});

provider.single(type, message || ''); // (2)
// или
provider.many([{type: '', message: ''}]); // (3)

Для инициализации (1) аудита нужно передать следующие параметры:

  • baseUrl: string — базовый адрес службы
  • login: string — логин пользователя
  • token: string — авторизация
  • app_id: string — имя приложения

После инициализации можно воспользоваться двумя методами:

  • single: (type:string, message: string) — добавление одного события, где type — тип события, message — описание. Например: (‘sign in’, ‘вход пользователя’).
  • many: (any[]) — добавление массива событий

Пример кода на ExtJS:

/**
* компонент для передачи информации о действия пользователя. Для корректной работы нужно убедиться, что коды клиента соотвествуют кодам сервера
* @class IServ.Audit
* @unittest
* @example
* Audit.action(code, txt);
*/
Ext.define('IServ.Audit', {
singleton: true,
alternateClassName: ['Audit'],

provider: null,
buffers: [],

/**
* загрузка удаленного скрипта для выполнения команд
*/
load: function () {
if (Utilits.getConf('audit') == true) {
var audit_url = Utilits.getConf('remote_service_url') + Utilits.getConf('virtual_dir_path') + Utilits.getConf('audit_url');
if (audit_url) {
var me = this;
Ext.Loader.loadScript({
url: audit_url,
onLoad: function () {
if (__audit) {
me.provider = new __audit({
baseUrl: Utilits.getConf('remote_service_url') + Utilits.getConf('virtual_dir_path'),
login: AuthProvider.getUserName(),
token: AuthProvider.getToken()
});
}
}
});
}
}
},

/**
* действия
* @param {string} type код действия
* @param {string} message текст действия. Может не указываться
*/
action: function (type, message) {
if (Utilits.getConf('audit') == true) {
try {
if (this.provider) {
if (message != null || message != undefined)
message = message.toString();

this.provider.single(type, message || '');
if (this.buffers.length > 0) {
this.provider.many(this.buffers);
this.buffers = [];
}
} else {
this.buffers.push({
type: type,
message: message
});
}
} catch (exc) {

}
}
}
});
Print Friendly, PDF & Email

Добавить комментарий