Итак, задача: имея какие-нибудь абстрактные логи доступа в wonder-net:
!->14/02 16:44:22 [134.249.51.251:39951>80] (t1 19) >HTTP in:504 out:34 Time:156
GET /5168742330521893/ HTTP/1.1 SCOD=00
!->14/02 16:44:24 [134.249.51.251:49507>80] (t1 20)
GET /4405885823409377/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 22)
GET /4149437701562173/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 23) >HTTP in:385 out:10138 Time:156
GET /5211537451172048/ HTTP/1.1 SCOD=00
!->14/02 16:54:24 [195.18.13.107:1727>80] (t1 30) >HTTP in:423 out:1220 Time:187
GET /5211537446447554/ HTTP/1.1 SCOD=23
!->14/02 18:07:24 [82.145.208.159:43634>80] (t2 52)
GET /4149437838265377/ HTTP/1.1 SCOD=00
!->14/02 18:09:41 [82.145.208.174:41708>80] (t2 61)
GET /4149497815750155 / HTTP/1.1 SCOD=00
!->14/02 18:51:39 [82.145.210.33:55210>80] (t1 66) >HTTP in:543 out:34 Time:0
GET /5168757259478487/ HTTP/1.1 SCOD=00
!->14/02 18:51:40 [82.145.210.33:55332>80] (t1 68) >HTTP in:544 out:1243 Time:141
GET /4149497800456701 / HTTP/1.1 SCOD=00
!->14/02 18:51:46 [82.145.210.33:57345>80] (t1 73) >HTTP in:544 out:1243 Time:125
GET /5168742330521893/ HTTP/1.1 SCOD=00
выделить:
Дату-время — фиолетовым курсивом;
Номер карты — желтым курсивом, если не в черном списке или красным, если иначе;
ip-адрес — темно-зеленым, если не в черном списке или красным, если иначе;
scod=хх — темно-зеленым если 00 или красным, если иначе.
В нашу цветовую схему нужно добавить стили, которыми мы собираемся подсвечивать текст. Насколько я понял, все цветовые схемы аккуратно собраны в файле c:\Program Files\Sublime Text 3\Packages\Color Scheme — Default.sublime-package.
Файл представляет собой zip архив без сжатия. Распаковываем, выбираем любимую схему (по умолчанию Monokai.tmTheme) и копируем ее в…(запускаем Sublime Text: меню Preferences — Browse Packages) папку User.
Открываем свежескопированный Monokai.tmTheme для редактирования. В самом низу перед закрывающимся </array>
добавляем блоки стилей. Стиль может содержать три параметра: background, foreground и fontStyle. fontStyle в свою очередь bold, italic и underline.
фиолетовый курсив будет выглядеть так:
<dict>
<key>scope</key>
<string>violet</string> <!-- По этому имени будем обращаться к стилю -->
<key>settings</key>
<dict>
<key>foreground</key>
<string>#EE82EE</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
жирный желтый(ЖЖ):
<dict>
<key>scope</key>
<string>yellow</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFD700</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
темно-зеленый:
<dict>
<key>scope</key>
<string>green</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#006400</string>
</dict>
</dict>
красный:
<dict>
<key>scope</key>
<string>red</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF0000</string>
</dict>
</dict>
2. В той же папке User создаем файл синтаксиса: wonderLog.tmLanguage с содержимым:
<?xml version="1.0" encoding="UTF-8" ?>
<plist version="1.0">
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>red</string> <!-- Имя стиля -->
<key>match</key>
<string>\b(?i)(?:5168742330521893|4149437701562173|4149497815750155)\b</string> <!-- Регулярное выражение к-рое надо выделить (номера из черного списка) -->
</dict>
<dict>
<key>name</key>
<string>red</string>
<key>match</key>
<string>\b(?i)(?:134\.249\.51\.251|82\.145\.208\.174)\b</string> <!-- ip из черного списка (точки экранируем) -->
</dict>
<dict>
<key>name</key>
<string>green</string>
<key>match</key>
<string>\b(?i)scod=00\b</string> <!-- scod=00 -->
</dict>
<dict>
<key>name</key>
<string>red</string>
<key>match</key>
<string>\b(?i)scod=\d+\b</string> <!-- scod!=00 -->
</dict>
<dict>
<key>name</key>
<string>green</string>
<key>match</key>
<string>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b</string> <!-- остальные ip (конечно, надо не так, но...) -->
</dict>
<dict>
<key>name</key>
<string>yellow</string>
<key>match</key>
<string>\b\d{16}\b</string> <!-- остальные номера -->
</dict>
<dict>
<key>name</key>
<string>violet</string>
<key>match</key>
<string>\d{1,2}/\d{1,2}\s\d{2}:\d{2}:\d{2}</string> <!-- дата, время -->
</dict>
</array>
<key>name</key>
<string>wonderLog</string>
<key>scopeName</key>
<string>wonderLog</string>
<key>fileTypes</key>
<array>
<string>log</string> <!-- К этому расширению файла будет автоматически применяться данный синтаксис -->
</array>
</dict>
</plist>
На примере видно, что если несколько регулярных выражений претендуют закрасить цвет по-разному, то приоритет будет у того, которое описано выше (первее).
Сохраняем все.
Выбираем пользовательскую цветовую схему: Preferences — Color Scheme — User — Monokai.
Открываем наш чудо-лог (если расширение файла не совпадает с шаблонным, делаем View — Syntax — wonderLog) и наслаждаемся результатом:
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий