|
Помогите разобраться с настройками logcfg.xml (Для тех. журнала) | ☑ | ||
---|---|---|---|---|
0
Alex_MA
28.05.14
✎
17:57
|
Здравствуйте!
Хочу понять как фильтровать данные записываемые технологическим журналом в логи. Эксперимент хочу провести на событии "dbmssql" - Исполнение операторов SQL СУБД Microsoft SQL Server; http://www.pictureshack.ru/view_86282_p1.png Данное событие имеет ряд свойств: context - Контекст исполнения; dbpid - Строковое представление идентификатора соединения сервера системы «1С:Предприятие» с сервером баз данных в терминах сервера баз данных; duration - Длительность события в десятитысячных долях секунды; func - Наименование выполняемого действия; lka - Признак того, что поток является виновником транзакционных блокировок СУБД; lkaid - Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является виновником блокировок. Например, ‘271,273,274’; lkato - Время в секундах, прошедшее с момента обнаружения, что поток является виновником блокировок; lkp - Признак того, что поток является жертвой транзакционной блокировки СУБД; lkpid - Список номеров запросов к СУБД, «кто кого заблокировал», обнаруживших в течение события, что поток является жертвой блокировок. Например, ‘271,273,274’.; lkpto - Время в секундах, прошедшее с момента обнаружения, что поток является жертвой блокировки; lksrc - Номер соединения виновника блокировки, если поток является жертвой; name - имя события; p:processname - Имя серверного контекста, который обычно совпадает с именем информационной базы; plansqltext - План выполненного SQL запроса, построенный сервером баз данных (текст запроса расположен в свойстве "SQL"); process - Наименование приложения, как его представляет операционная система (имя файла загрузочного модуля приложения); rows - Количество полученных записей базы данных; rowsaffected - Количество измененных записей базы данных; sessionid - Номер сеанса; sql - Текст оператора SQL; t:applicationname - Идентификатор приложения, установившего соединение; t:clientid - Номер TCP соединения между процессами системы «1С:Предприятие»; t:computername - Имя компьютера процесса, установившего соединение; t:connectid - Номер соединения с информационной базой; usr - Имя пользователя информационной базы; Вначале выбрал все свойства события к записи в логи: http://www.pictureshack.ru/view_26187_p2.png В результате сформировался вот такой файл технологического журнала: <?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log"> <dump create="false"/> <log location="E:\LOG_1C_TLOCKS" history="168"> <event> <eq property="name" value="dbmssql"/> </event> <property name="all"> <event> <eq property="name" value="dbmssql"/> </event> </property> </log> </config> Здесь я не могу понять для какой цели сформирован второй раз event "dbmssql" после регистрации всех свойств, т.е. после <property name="all">? Ну да ладно. Закидываю этот файл в C:\Program Files\1cv82\8.2.19.83\bin\conf В результате пошел сбор данных: http://www.pictureshack.ru/view_85785_p3.png Открываем файл с логами: 53:29.5963-7,DBMSSQL,4,process=rphost,p:processName=ComR_test,t:clientID=65282,t:applicationName=BackgroundJob,t:connectID=277648,SessionID=62638,Usr=DefUser,Trans=1,dbpid=373,Sql="SELECT spid, blocked FROM master..sysprocesses WHERE blocked > 0 AND lastwaittype LIKE 'LCK_%'",Rows=0,RowsAffected=0 53:29.5965-1,DBMSSQL,4,process=rphost,p:processName=ComR_test,t:clientID=65282,t:applicationName=BackgroundJob,t:connectID=277648,SessionID=62638,Usr=DefUser,Trans=1,dbpid=373,Sql=BEGIN TRANSACTION 53:29.5967-5,DBMSSQL,5,process=rphost,p:processName=SA_MainStrg,t:clientID=65279,t:applicationName=BackgroundJob,t:connectID=277644,SessionID=1183318,Usr=esbuser,Trans=1,dbpid=100,Sql='UPDATE T1 SET _MessageNo = ? FROM _InfoRgChngR27615 T1 WHERE T1._NodeTRef = ? AND T1._NodeRRef = ? AND T1._MessageNo IS NULL p_0: 1N p_1: 0x00008F99 p_2: 0x88B5000C29F2DCAE11E32C0087EE1D85 ',Rows=0,RowsAffected=0,Context=' ОбщийМодуль.vscESBСобытияШины.Модуль : 54 : ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ВыборкаУзлов.Ссылка, 1);' 53:29.5974-2,DBMSSQL,5,process=rphost,p:processName=ComR_test,t:clientID=65282,t:applicationName=BackgroundJob,t:connectID=277648,SessionID=62638,Usr=DefUser,Trans=1,dbpid=373,Sql="Select count(*) from sysobjects where name='DBChanges'",Rows=1 53:29.5976-3,DBMSSQL,5,process=rphost,p:processName=SA_MainStrg,t:clientID=65279,t:applicationName=BackgroundJob,t:connectID=277644,SessionID=1183318,Usr=esbuser,Trans=1,dbpid=100,Sql='SELECT T1._Period, T1._Fld25779RRef FROM _InfoRgChngR27615 T1 WHERE T1._NodeTRef = ? AND T1._NodeRRef = ? p_0: 0x00008F99 p_1: 0x88B5000C29F2DCAE11E32C0087EE1D85 ',Rows=0,RowsAffected=0,Context=' ОбщийМодуль.vscESBСобытияШины.Модуль : 54 : ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ВыборкаУзлов.Ссылка, 1);' Вопрос: Как мне настроить файл технологического журнала так, чтобы он собирал данные: 1. По p:processName=SA_MainStrg; 2. По запросам в текст которых входит подстрока (*); Спасибо за внимание. |
|||
1
Alex_MA
29.05.14
✎
07:49
|
ап
|
|||
2
nufnufcheg
29.05.14
✎
08:55
|
на инфостарте достаточно обработок для интерактивной настройки ТЖ и для чтения логов
|
|||
3
Alex_MA
29.05.14
✎
14:00
|
Разобрался - может кому пригодится.
Допустим есть конфигурационный файл технологического журнала: <?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log"> <dump create="true" type="0" prntscrn="false"/> <log history="0" location="E:\LOG_1C_TLOCKS"> <event> <eq property="name" value="tlock"/> <eq property="p:processName" value="tstma_upp"/> </event> <event> <eq property="name" value="dbmssql"/> <eq property="p:processName" value="tstma_upp"/> </event> <property name="sql"/> <property name="p:processname"> <event> <eq property="name" value="tlock"/> <eq property="name" value="dbmssql"/> </event> </property> </log> </config> В данном файле конфигурации регистрируются два события: 1. TLOCK 2. DBMSSQL <log history="0" location="E:\LOG_1C_TLOCKS"> <event> <eq property="name" value="tlock"/> <eq property="p:processName" value="tstma_upp"/> </event> Что соответствует первому тэгу <eq>: <eq property="name" value="tlock"/> Второй тэг <eq> говорит о том, что данное событие должно фильтроваться по processName и его значение должно быть tstma_upp: <eq property="p:processName" value="tstma_upp"/> Далее идет настройка свойств, которые будут писаться в файлы технологического журнала: <property name="sql"/> В данном случае будет писаться значение свойства «sql» для всех событий (т.е. tlock и dbmssql); Следующее значения свойств, которые будут записаны в технологический журнал относятся к событиям tlock и dbmssql: <property name="p:processname"> <event> <eq property="name" value="tlock"/> <eq property="name" value="dbmssql"/> </event> </property> Для удобства отслеживания конкретных событий логично сначала включить запись по всем свойствам, а затем, когда в логе технологического журнала будут присутствовать все записанные значения свойств выбранных событий – прописать фильтры в конфигурационный файл технологического журнала для того, чтобы уменьшить объем анализируемых данных. Все оказывается очень просто. Опять же мануальщики на сайте не могли нормально написать и показать нормальных примеров. |
|||
4
H A D G E H O G s
29.05.14
✎
14:12
|
Никто не кинет в меня описанием, как настроить оконце количества данных с сервера.
У меня там циферек нет. |
|||
5
Alex_MA
09.06.14
✎
12:17
|
Кстати начал более детально настраивать конфигурационный файл - не могу понять как отобрать запросы к СУБД, которые бы не содержали в тексте запроса "(NOLOCK)"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |