Привіт! Сьогодні стартує наш четвертий мітап для тестувальників, QA. До 18:00 МСК на нього все ще можна зареєструватись. А поки що ми починаємо викладати доповіді з попереднього мітапу, і починаємо з Ольги, старшого QA-інженера в компанії red_mad_robot. Поговоримо про мобільні пристрої та про зняття логів із цих мобільних пристроїв, почитаємо їх та розберемо, як взагалі з ними працювати. Що таке логі мобільного пристрою? Логи - це записи чи повідомлення як тексту. У нас у цьому тексті записуються всі дії користувача або як система відповідає на дії користувача, відповідно, вся та інформація, що ви робите, куди натискаєте на самому пристрої, в додатку — все це пишеться в логі. Які логи у принципі бувають? Розділимо їх на дві групи. Перша - це Crash logs, вони мають на увазі під собою окремий файл, куди сипеться лише інформація про екстрене завершення програми. І другий варіант - це просто логи, файл, що є журналом подій, в ньому зберігаються всі системні записи та відповіді пристрою на дії користувача. Хочу помітити, що ці рівні логування більше під Android-логи, тому що саме поділ на Error, Warn, Info, Debug та Verbose в основному ви можете побачити саме на логах з Android. Плюс, така ж інформація найчастіше буде у ваших серверних логах, в принципі, буде корисно вивчити їх. Що примітно, кожен рівень включає попередній. Якщо ми візьмемо Verbose, фільтрацію по ньому, наприклад, ми отримуватимемо логи з усіх попередніх рівнів, тобто абсолютно всі логи.Розберемо кожен докладно. Перший – це Error. Помилки рівня Error - помилки, які говорять про роботу системи, на них треба дуже швидко реагувати і завжди повідомляти їх розробникам. Наприклад, SpannableStringBuilder - це помилка програми, яка говорить нам про те, що текстове поле, тобто Span, наш елемент, він не може бути нульовим чи порожнім. Другий варіант – це системна помилка ZeroHung. Дана помилка говорить про те, що у нас відбувається витік пам'яті, вона може бути як від якоїсь дії із додатком, так і від самого додатка. Наступний варіант - Warning. Це теж помилки, які говорять про якусь несподівану поведінку, яка потребує уваги, але вони не такі важливі, як error. Наприклад, помилка із програми: ми намагаємося декодувати відео в потрібну нам якість, у потрібний формат, і у нас на цьому відбувається помилка. Другий варіант, наприклад BroadcastQueue. Це помилка системна, помилка роботи якогось віджету на вашому пристрої. У мене це був Android Huawei, мені від системи сипляться такі помилки. Наступний рівень - Info. Це рівень логів, на якому нам надходять записи суто інформаційного характеру роботи системи. Наприклад, у цей рівень будуть надходити ваші запити, які надсилають програми на сервер. Тобто він буде виглядати так: http start, тут ви побачите, які header ви відправляються, яке тіло відправляється, якщо воно є, і так само отримуватимете відповідь від сервера в такому форматі: json, key, value, ключ, значення і так далі. Закінчуватиметься він як http end. Далі системний варіант помилки або системний варіант лога про те, що зараз ми маємо намір вимкнути екран. Тобто цей запис з'являється, коли ми просто блокуємо екран телефону, і він гасне.Це у нас падає у інформацію. Далі рівень Debug. Це той рівень повідомлень, у якому передається інформація про процеси налагодження чи кроки якихось великих процесів, те, на що розробники хотіли звернути увагу. Наприклад, ми просто натиснули на гойдалку гучності. Тут буде, звичайно, більш докладно всередині цього лога - якщо ви його зловите, то побачите саме що сталося: ми збільшили звук, зменшили звук і скільки. І другий варіант, наприклад, у вас програма працює по WebSocket, і вам треба зрозуміти, підключилися ви взагалі чи ні. Відповідно, це повідомлення про те, що коннект стався (на екрані «b$b: WebSocket connected»). Наступний рівень Verbose. Це рівень найнижчого пріоритету, там сипляться взагалі всі логи, там буде якась додаткова інформація, яка не увійшла до Info, наприклад. Наприклад, у нас спливає вікно, ми його закриваємо, у нас WindowManager, і ми тут бачимо, що-небудь додалося, або все вийшло. Далі вся інформація про геолокацію. Наприклад, у нас є LocationProvider. У більш розширеному варіанті там повністю писатиметься ваша геолокація аж до довготи і широти. І третій приклад теж пов'язаний зі звуком, тобто який у нас звук і наскільки він гучний. Тобто, наприклад, volume 10 – це у нас максимальний звук, і ми його збільшили до такого варіанту (на екрані «AudioManager: getStreamVolume streamType: 3 volume: 10»). Дуже схожий на Info, але я б сказала, що більш докладна інформація на нього передається. Перший інструмент - це Android Studio, зокрема його утиліта Logcat.Що потрібно для того, щоб розпочати знімати логи через Android Studio? Перше, звичайно, необхідно перевести пристрій у режим розробника. У налаштуваннях ви шукаєте номер вашого білда або операційної системи, залежно від того, на якому пристрої ви збираєтеся дивитися, воно змінюється від виробників. Натискаєте близько 10 разів на цю інформацію, і у вас з'являється повідомлення «Чи не бажаєте ви перевести пристрій у режим розробника?». Натискаєте "Ок", і ваш телефон вже не такий звичайний. Далі, вам треба підключити цей пристрій USB до вашого комп'ютера, звичайно ж, встановити на сам комп'ютер Android Studio, він встановлюється як на Windows, так і на MacOS, тут проблем ніяких немає. Відкриваючи Android Studio, вибираємо вкладку Logcat. Під цифрою 1 те, де знайти це потаємне слово. Натискаючи на нього, переходимо до повідомлень у реальному часі. Під цифрою 2 вікно, де ми вибираємо телефон, з якого зніматимемо логи. Відповідно, якщо нічого не підключено або ваш телефон не видно, тут ви нічого не зможете вибрати. Під цифрою 3 цікавий момент: якщо ви хочете повністю знімати всі логи (системні та з усіх програм, які у вас сипляться), не вибирайте тут нічого. Якщо ви оберете якусь конкретну програму, яка debug«на, у вас будуть показуватися логи виключно по ньому. Поряд із цифрою 3 ви бачите слово Verbose – це рівень того лога, який ви хочете бачити. Тобто, якщо ви виберете Error, будуть лише Error. І під цифрою 4 у вас поле пошуку. Це те поле, де ви зможете фільтрувати видачу за додатком, за рівнем, за якоюсь утилітою, яка вам потрібна, відповідно, це у нас regular вираз, і там все досить просто шукається за збігом.Варіант другого скріншота — це я вже обрала конкретне складання, і ми бачимо, що у нас по цій збірці сипляться логи. Перейдемо до наступного варіанта. Це через термінал знімати через той же Logcat. Нам потрібно, щоб пристрій стояло в режимі розробника, підключаємо цей пристрій USB до комп'ютера, на комп'ютер треба встановити Android Debug Bridge. Відкриваємо термінал і пишемо дві команди: перша - "abd devices", яка показує, які пристрої підключені і які adb бачить пристрої, другою командою ми говоримо: "Запусти утиліту Logcat у конкретного пристрою". Тобто при першій команді ви побачите, як ваш пристрій називається, у другій команді ви його просто доповнюєте. Як це виглядає: ось мій термінал, я бачу те, що мій пристрій називається 7BKDU… він підключений по USB, і мій Mac його бачить. Я вводжу команду abd - s "назва пристрою" Logcat. Далі у вас у терміналі приблизно так само, як і в Android Studio, будуть в режимі реального часу сипатися логи. Розберемо, як читати. Під цифрою 1 буде дата та час, коли надійшов запис. Під цифрою 2 маленький стовпець, де ви бачите літери V, D, E, I і так далі. Це якраз ті самі рівні нашого логування Debug, Verbose, Warning чи Info. Звичайно, виглядає це так, що в Android це все набагато зручніше і приємніше, легко можна фільтрувати. У Terminal'і фільтрувати буде вже складніше, треба буде змінювати саму команду, додавати ключі, які б фільтрували видачу за рівнем або окремим додатком. Третій варіант, який ви можете скористатися для зняття логів, це SDK Platform Tools. Для цього нам треба перевести пристрій у режим розробника і підключити його до комп'ютера по USB, завантажити на комп'ютер папку SDK Platform Tools, вона є під різними операційними системами. Далі відкриваємо папку в терміналі, щоб була відкрита папка SDK Platform Tools. Потім пишемо команду "adb logcat - d - v time>. хочемо зберігати ці логи у log.txt. Ось ми написали команди і починаємо виконувати дії на нашому пристрої, тобто натискати на різні компоненти або відтворювати баг, який вам заважає, і ви хочете зняти з нього логи. Далі перериваєте виконання цієї команди (на Mac це ctrl+C), і до нашої папки додається цей лог (android — debug.log). Відкриваємо його, як ми бачимо, інформація схожа на ту, що в Terminal, єдине, як ви припинили команду, цей файл більше не оновлюється, поки ви знову не повторите цю команду. Знову ж таки, у таблиці 1 ми бачимо дату і час приходу повідомлення, таблиця 2 — рівень наших логів, у таблиці 3 бачимо, від якої частини системи ми сипляться дані, лог і його расшифровка. Звичайно ж, перше, про що я хотіла б розповісти, це xCode та вбудований для нього симулятор. На жаль, xCode – програма тільки для MacOS. Щоб зняти з симулятора логи, потрібно встановити xCode, зайти в меню, відкрити Developer Tools та симулятор. Симулятор - додаткова програма, яка дозволяє відтворювати роботу системи, якщо у вас немає фізичного девайсу. У цей симулятор ми встановлюємо необхідну нам додаток, вибираємо, який саме IPhone, його розміри, роздільна здатність та операційну систему. І вже в симуляторі вибираємо пункт Debug і Open System Log. Це виглядає так: я вибираю в самому симуляторі папку Debug та підвкладку Open System Log. Він так само йде в режимі реального часу, але вони (логи) виведені інакше, не так, як на Android. Ми бачимо, що тут уже немає рівня логування, є дата та час. Цифра 2 – повідомлення, що ми взагалі бачимо. Ми бачимо, з якого пристрою було знято інформацію. У моєму випадку це ім'я мого Mac. Бачимо додатковий запис, з якого елемента системи це повідомлення надійшло та його розшифровка. Наприклад, в логах IOS доведеться поколупатися трохи детальніше, ніж в Android. Другий інструмент теж пов'язаний з xCode, але він йде іншою «доріжкою». Це Devices and Simulator. Встановлюємо xCode, підключаємо пристрій USB, тут вже важливо, щоб був реальний пристрій. У самому xCode відкриваємо вкладку Window, там вибираємо підвкладку Devices and Simulator. Натискаємо у пристрою Open Console. На панелі бачимо назву нашого пристрою, яка у нього операційна система, модель, і правіше за цю кнопку нам цікаво «Open Console». Під цифрою 1 ми бачимо всі програми, які додатково встановлені на наші пристрої, у колонці під цифрою 2 — версія цього пристрою, яку вказує розробник. Третє пишеться URL нашого пристрою. Тобто, наприклад, у вашого розробника, вашої компанії, вашого додатка є свій URL, яким він ходить. Відповідно, тут він відображений. Як все це виглядає: тут досить зручно відстежувати, як сипляться логи.Вони теж сипляться в реальному часі, і, якщо їх ніяк не фільтрувати, вони постійно падають, але тут все зручно дивитися. У нас є час цього повідомлення, процес — це з якоїсь частини системи, програми надійшло повідомлення. У колонці «Повідомлення» ми бачимо докладний опис того, що відбувається, що не так, вся системна сервісна інформація. Цікаво, що саме в Devices and Simulator є пошук, який дозволяє фільтрувати видачу. Тобто справа зверху ми можемо написати назву нашої програми, і у нас все відфільтрується за процесом. Також ми можемо призупинити видачу по кнопці, і тоді логи перестати хаотично і безладно сипатися (щоб зручніше шукати те, що ви хочете знайти на пристрої). Є програма iMazing, яка ставиться на Windows та MacOS. Підключаєте пристрій USB і в меню вибираєте «показати консоль пристрою». В цілому, ця програма платна, однак, зняти логи з пристрою можна на тріальній версії, вона ніяк не обмежується. У нас відкривається наступне вікно: ми бачимо, який пристрій у нас підключено, ми бачимо обліковий запис, і в меню ми бачимо якраз «показати консоль пристрою». Якщо ми на неї натиснемо, побачимо таке. Перший квадрат - це дата і час, коли ми отримали це повідомлення, другий пункт - від кого, з якого пристрою, оскільки це вже реальний девайс, він називається IP-040. Далі пишеться, з якої частини системи прилетіло повідомлення та його опис. Під цифрою 3 бачимо поле пошуку. Ми можемо фільтрувати цю видачу, можемо зупинити потік вхідних логів за кнопкою «пауза» та відфільтрувати її у полі пошуку. Це допоможе вам сконцентруватися на конкретній запущеній програмі. Також у iMazing можна ці логи зберігати відповідною кнопкою. Логи – це інструмент, за допомогою якого можна відстежувати робочий процес сервера чи сайту. Тому знати, як читати логи це корисне вміння для виявлення збоїв у роботі ПЗ, швидкого та результативного реагування на інші проблеми (виявлення зловмисних дій), ефективного аналізу робочого процесу, протидії DDoS-атакам. Логи (log) – це спеціальні текстові файли, в яких у хронологічному порядку фіксується інформація про всі дії програми чи користувачів. Простіше кажучи, це журнал реєстрації всіх подій, що відбувалися в системі: Залежно від того, яка інформація записується, і для яких цілей вона використовується, логи помилок сервера можна класифікувати за різними критеріями: Місце розташування логів залежить від ПЗ, налаштувань, прописаного адміном шляху. Найчастіше server logs зберігаються в var/log/. Однак, не всі послуги розміщують файли реєстрації в цю директорію. У будь-якому випадку можна уточнити таку інформацію у веб-хостера. Лог помилок MySQL ($hostname.err) зберігається в /var/lib/mysql/. Для Debian або Ubuntu розташування логів аналогічне, за винятком log file помилок MySQL: /mysql/error.log. А також – логи веб-сервера Apache зберігаються по дорозі /var/log/apache2. Їх можна відсортувати або відфільтрувати та вибрати необхідне. Запуск та відключення логів здійснюється з адміністративної панелі. Як правило, доступ через розділ "журнал" або "логи". При цьому варто зважати на те, що файли не зберігаються роками. Тому, за потреби подивитися log, це потрібно зробити своєчасно. Для більшості користувачів вміст log-файлів це безглуздий набір символів. Як читати логи, щоб зрозуміти, що в них зашифровано? Як правило, такої інформації достатньо, щоб проаналізувати ситуацію та зробити потрібні висновки. Наприклад, заблокувати бота, який створив надмірне навантаження на сайт. Звісно, навіть після розшифрування даних логів ще потрібно проаналізувати.Для цього існує різне програмне забезпечення, яке допомагає відпрацьовувати дані з логів – Weblog Expert, WebAlyzer, Analog, Webtrends, Awstats, SpyLOG Flexolyzer та інші платні та безкоштовні програми. Щоб краще розуміти та використовувати інформацію, потрібно знати, де подивитися логи сервера. Для цього існує 2 види програм: статичні та працюючі в режимі реального часу. Статичні програми для перегляду логів веб-сервера аналізують вже записані відомості та генерують звіти у вигляді графіків, таблиць, діаграм тощо. Такі програми дозволяють отримувати загальну картину роботи сайту і сервера за певний період часу. Прикладами статичних програм є WebLog Expert і Web Log Explorer. Програми, що працюють у режимі реального часу, аналізують логи, що надходять на сервер онлайн. Вони відображають результати аналізу як інтерактивних дашбордів, графіків, лічильників тощо. Такі програми дозволяють спостерігати за поточною роботою сайту та сервера та оперативно реагувати на ситуації, що виникають. Як приклад онлайн програм можна навести GoAccess і Logstash. Лог (log) – це текстовий файл, куди автоматично записується важлива інформація про роботу системи чи програми. Найчастіше говорять про логів сервера. Їх записує програмне забезпечення, яке управляє внутрішньою частиною сайту чи онлайн-системи. Лог-файл – своєрідний журнал подій. «IT-спеціаліст з нуля» наш найкращий курс для старту в IT У логі записуються відомості про помилки, дії користувачів та інші події, які відбуваються на сервері або в системі. Розробники та інженери користуються ними під час налагодження або перевірки, як працює програмне забезпечення. Так виглядає один із лог-файлів або журнал на стороні клієнта. Джерело Лог-файл (log file) містить у собі інформацію у скороченому форматі. Для звичайного користувача це незрозумілий набір символів. Але записи мають сенс, і фахівці повинні вміти читати їх — у файлах багато важливої інформації про роботу. Безкоштовний профорієнтаційний проект Пройдіть тест та визначте ваш напрямок у IT. Вигравайте призи, отримуйте подарунки та особистий план розвитку через безкоштовні гайди та кар'єрну консультацію. Усунення несправностей. По логах можна зрозуміти, коли і через що у роботі системи виник збій. А коли стане зрозумілою причина, усунути його буде легше. Контроль роботи. Логи дозволяють краще відстежувати процеси, робити прогнози на майбутнє та загалом контролювати роботу сервера. За ними зрозуміло, чи нормально працює система, що потрібно доопрацювати, яка у сайту відвідуваність і таке інше. Перевірка стабільності. Навіть якщо із системою все добре, рекомендується періодично перевіряти її логи. Так можна на ранніх етапах виявити вразливість чи недолік - ще до того, як він стане проблемою. Виявлення зловмисників. Вірус чи злом можна виявити за логами. Вони фіксують будь-які дії користувачів чи програм у системі, тому з них фахівець може відстежити підозрілу активність. Маркетинг. Логи є джерелом цінної інформації для розвитку сайту. Вони дозволяють зібрати статистику відвідуваності з «сирими» технічними даними. Наприклад, зрозуміти, звідки приходять користувачі, де вони знаходяться та якими пристроями користуються для візиту. Інформація в логах багато, тому для кожного типу відомостей існує свій лог-файл. Візьмемо для прикладу логі веб-сервера.Ось якими вони можуть бути: Найбільш важливими вважаються логи сервера, доступу та помилок, але перевіряти радять не тільки їх. . Станьте Fullstack-розробником на Python і знайдіть стабільну роботу У лог-файлах знаходиться повний журнал подій, пов'язаних з конкретним вузлом. . Але вся перерахована інформація представлена в дуже стислому вигляді. Тому незнайома з правилами запису людина може заплутатися в логах, тому вони дуже докладні і великі. ВручнуЛоги зберігаються у файлах з розширенням .log. Їх можна відкрити як звичайні текстові файли та переглянути вміст. Наприклад, так виглядає стандартний формат для лога доступу з веб-сервера: [доменне ім'я сайту][IP-адреса користувача][дата та час візиту][тип запиту][URL, до якого звернувся користувач][протокол, за яким користувач з'єднався з сайтом][код відповіді сервера][кількість байт інформації, яку передали користувачеві][додаткова інформація] Дані найчастіше поділяються пробілами, іноді дефісами або слешами. Кожен запис показується з нового рядка. Читати повні логи в такому форматі досить трудомістко, тому головне знайти потрібні рядки і сконцентруватися на них. Не єдиний можливий спосіб запису лога. Наприклад, у лозі помилок кожен рядок - це запис про помилку з повною інформацією про неї: датою і часом, адресою сторінки, на якій виник збій, і так далі. За допомогою аналізатора. Другий варіант - не переглядати лог вручну, а скористатися спеціальною програмою-аналізатором. Вона парсує лог-файл - «розбирає» його на складові і представляє у зручному для користувача вигляді. Так інформація відображається у вигляді зрозумілого звіту, іноді з графіками та діаграмами. Аналізатори бувають різними, наприклад Weblog Expert, Analog та ін. Деякі їх також вміють інтегруватися з сервісами для збору статистики, щоб показувати більш повну картинку. Аналізатор перевірки логів WebLog Expert Перевіряти та читати логи вам знадобиться, якщо ви працюватимете з професійним ПЗ для розробників, вебмайстрів або інженерів. Це складно тільки з першого погляду — якщо зрозуміти принцип, розшифрувати їх не важко. А аналізатори допоможуть краще та швидше зорієнтуватися у записах. Таблиці для файлів помилок є структурованим форматом, який використовується для запису та аналізу помилок і проблем у програмних продуктах, веб-додатках, операційних системах та інших інформаційних системах. Такі таблиці дозволяють організувати дані про помилки у зручному та зрозумілому форматі, що полегшує їх інтерпретацію, пошук причин збоїв та вжиття заходів щодо виправлення. Таблиці для файлів помилок зазвичай складаються з наступних стовпців: Приклад таблиці для файлів помилок: Такі таблиці допомагають розробникам та адміністраторам систем систематизувати інформацію про виникнення помилок, спростити їх пошук та усунення, а також забезпечити надійне моніторинг та налагодження програмного забезпечення. Дізнатися більше про мережеві технології та отримати нову професію ви можете на курсах. Записуйтесь та станьте затребуваним IT-фахівцем. Три кроки до нової спеціальності. Пройдіть тест, щоб визначити свою IT-професію. На прямому ефірі дізнайтесь все про п'ять топових IT-спеціальностей та виберіть свою. Отримайте шанс виграти грант на навчання, сертифікат на 5000 рублів або курс SQL.Інструменти для зняття логів з Android/iOS-пристроїв. Читання та розбір 14.12.2021 13:46
Рівні логування
Як знімати логи?
Android
iOS
Як знімати логи з IOS на Windows
Як читати логи сервера та що це таке?
Зміст:Що таке логи і навіщо вони потрібні
Класифікація логів
Типи логів та де їх знайти
У дистрибутивів Linux CentOS чи Fedora логи серверної машини лежать у /var/log/. Там можна знайти:
У Windows дружній спосіб структурування log-файлів. Події поділяються на кілька рівнів:
Яка інформація зберігається у логах та як її інтерпретувати?
Рядок access.log сервера містить:
Файл помилок (error.log) реєструє моменти, коли щось пішло не так. З них можна дізнатися:
Програми для аналізу логів
Лог-файл
Навіщо потрібні логи
Якими бувають логи
на віддаленніЩо може бути в логах
Як правильно читати лог
Таблиця лог-файлів
Час та дата Рівень помилки Компонент Повідомлення про помилку Користувач IP-адреса 2023-08-05 09:15:27 ERROR MainApp Помилка при збереженні даних у базі даних User123 192.168.1.100 2023-08-05 09:16:42 WARNING MainApp Недостатньо вільного місця на диску — 192.168.1.102 2023-08-05 09:17:10 CRITICAL Database Збій при підключенні до бази даних Admin 192.168.1.103 2023-08-05 09:18:55 ERROR MainApp Помилка валідації даних користувача User456 192.168.1.104 2023-08-05 09:19:30 DEBUG MainApp Додаткові дані для налагодження — 192.168.1.105