Имя: Пароль:
1C
1С v8
Анализ логов, много логов! Как быть?
0 sirbure
 
30.10.15
12:06
Ситуация- Мне нужно проанализировать ~50 логов, проблема в том, что они бородатые и соответственно очень толстые начиная от 100 мб и доходит аж до 1.5 гб,  проанализировать нужно два крайних месяца, казалось бы пореж лог, но проблема в том, что он режется полностью=( я предполагаю из за размера, что из конфигуратора, что консолью результат один. Есть у меня 2 обработки которые читают лог, одна - сам файл lgp  как текстовый док, но сами понимаете 700 мб - это часов 6)) Вторая парсит лог в mxl - соответственно- шустрее. Так вот, Можно ли как то массово конвертнуть lgp в mxl? или же как можно быстрее распарсить lgp? Просто заходить в 50 баз и оттуда конвертить лог тож не очень комильфо! или другого варианта нет, как подпрячь людей повыгружать мне эти логи?)
1 Мыш
 
30.10.15
12:29
(0) Сколько денег?
2 Мыш
 
30.10.15
12:34
Лан, бесплатный совет. Ищешь строку, начинающуюся с чего-то типа {20150101000001,N,
Копируешь всё от неё и до конца. Ещё первые две строки с этого же файла берешь. Это будут данные за 2015-й год. Вот его потом и обрабатываешь.
3 sirbure
 
30.10.15
12:47
(2) Я думал об ентом, только вот при работе с текстовым файлом строку эту можно найти перебором только, прикинь перебрать 6 мультов строк?)))
4 rs_trade
 
30.10.15
12:48
(0) Загоняешь в таблицу ms sql и запросами анализируешь сколько влезет
5 Гёдза
 
30.10.15
12:49
1с советует awk, grep
6 PR третий
 
30.10.15
12:51
(3) А кто тебе предлагает резать файл средствами 1С?
7 Кирпич
 
30.10.15
12:53
(3) так ты в блокноте будешь перебирать? тогда да.
8 sirbure
 
30.10.15
12:59
(6)  Эм... действительно) То есть, предлагаешь чем нибудь другим, разрезать файлы, вытащить нужный период, и потом с тхт шником парсить? Просто обработки то которыми анализурую - 1Сные))
9 sirbure
 
30.10.15
13:01
(7)  ну а как иначе то, если есть 2 обработки, либо читают txt либо mxl.
10 Мыш
 
30.10.15
13:03
(3) winhex
11 sirbure
 
30.10.15
13:14
(10)  А Cmd команды есть у него? что бы скрипт для резки написать?
12 Мэс33
 
30.10.15
13:24
Накатать скрипт на том же Python и по рекекспу искать нужные строки.
С какой целью надо логи перелопатить?
13 sirbure
 
30.10.15
13:34
(12)  с целью найти, кто и когда создал/изменил, те или иные док-ты.
14 sirbure
 
30.10.15
13:37
(12)  тык парсеры есть)) Проблема в размерах логов, получается писать скрипт порезки файлов,  блин все равно конечно, два месяца через тхтшник это люто) часа на 2-3 каждый(((
15 Лодырь
 
30.10.15
13:44
Запусти анализ паралельно.
16 PR третий
 
30.10.15
13:46
(8) Конечно же порезать другим.
17 HawkEye
 
30.10.15
13:49
(0) на последнем евенте Алексей Лустин как раз показывал механизмы анализа логов ))) найди его презентацию
18 Мэс33
 
30.10.15
13:51
(14) видел готовую обработку для анализа логов, но он умирал на моих логах в 6 гб (резал я ежегодно на старой работе).
19 Мэс33
 
30.10.15
14:12
Python заполняет текстовый файл в миллион строк за пару секунд.

gogo = open ("log.txt","w")
for i in range(1,10000001,1):
    gogo.write("Hello, Mista!\n")
gogo.close()

Читает примерно с такой же скоростью.
Я бы на нем парсер накатал.
20 sirbure
 
30.10.15
14:24
(19)  да беда в том что не юзал питона((
21 Мэс33
 
30.10.15
14:28
(20) Попробуй, понравится. После java отдыхаешь ))).
Что ищем-то? По каким параметрам?
22 Гёдза
 
30.10.15
14:30
(19) Да все языки норм работают и с файлами и со строками, кроме 1С )))
23 Мэс33
 
30.10.15
14:32
(22) Да я просто увлекся питоном ))). Поэтому пишу. А со строками работает весьма прозрачно и синтаксис чертовски приятен.
Так что будем искать?
24 sirbure
 
30.10.15
15:00
(23)  Да мне получается нужно только порезать лог,  получается нужно найти дату 01.07.2015 и вырезать из лога все строки до нее))
25 Гёдза
 
30.10.15
15:01
Лучше всего awk
26 Лефмихалыч
 
30.10.15
15:05
(0) >как можно быстрее распарсить lgp
lgp - тупой текстарь, практически csv - парсь, чем удобно.

>Просто заходить в 50 баз и оттуда конвертить лог
автоматизируй это! Коннект через com-соедиениение и ВыгрузитьЖурналРегистрации()
27 sirbure
 
30.10.15
15:25
(26) во во! По подробнее плз!!!
28 Лефмихалыч
 
30.10.15
15:26
(27) с какого места тебе поподробнее? Как
База = Новый COMОбъект("v83.ComConnector") создать?
или как База.ВыгрузитьЖурналРегистрации()?
29 sirbure
 
30.10.15
15:28
(28)  С самого начала) То есть, грубо говоря я в любой конфе, запускаю обработку, которая коннектится к другой базе,  и через неё выгружаю файл регистрации?)
30 Лефмихалыч
 
30.10.15
15:28
(29) в любой.. Тебе для этого нужно только логин-пароль в этой базе и знать, где она лжит
31 sirbure
 
30.10.15
15:33
(30)  мне к 2ке нужно конектится!
32 sirbure
 
30.10.15
15:43
(30)  и в mxl можно  выгрузить?
33 Мэс33
 
30.10.15
16:48
Зачем выгружать, если все и так лежит в виде текстовых файлов?
Напишешь парсер, укажешь 50 путей к логам и вперед. Можно и в 1С, только он будет дольше сие делать.
(2) написал же - ищешь {20151008200752, - и копируешь все, что ниже.
34 Лефмихалыч
 
30.10.15
16:58
(31) чаво? к чему тебе нужно коннектиться?
35 sirbure
 
30.10.15
17:05
(34) да к 8.2! Спасибо Большое! Все получилось! Явно нужно поспать, как сам то не додумался к базе конектиться через внешнее соединение... капец
36 sirbure
 
30.10.15
17:11
(33) Тык два парсера - обработки 1сные, одна тхт парсит втарая mxl,  вторая быстрее работает)) в сотни раз)))) вот Левмихалыч мне глаза открыл что можно через внешку в мхл это все выгрузить) проблема решена))