Кто-нибудь что использует из сторонних сервисов для логирования из Salesforce? Вернулся пилить на Salesforce и реально понимаю что мне не хватает обычных логов да хотя бы для минимальных событий по типа кто-то что-то когда-то сделал. Стараешься конечно по максимуму использовать SObjects для хранения информации, но все равно, простых логов не хватает. Уже пару раз вставали такие вопросы - поменялся какой-то статус или какие-то данные, был запущен какой-то метод, а кто и почему это сделал никто не знает и вопрос сразу прилетает мне как разрабу. А что я сделаю - поля или отдельного объекта для хранения информации об этом событии у меня нет. А просто скинуть какое сообщение во внешний сервис логов или просто отловить эксепшен, собрать инфу и тоже в логи отправить было бы крайне полезно. Вот опять с нуля вопрос - какой внешний сервис или тулзу использовать и как в нее лить логи.
Кстати интересный видосик на глаза попался и на достаточно интересные мысли натолкнул. Можно воспользовать Platform Event (или что там в ближайшее время планируют внедрять по теме Pub/Sub). Писать логи в виде Events а потом просто забирать каким нибудь даже может самописным тулзом. Просто и со вкусом. И не нужны танцы с бубнами вокруг SObjects или Callouts. [youtube]https://www.youtube.com/watch?v=yYeurYnasVc[/youtube]
есть которые используют Nebula Logger https://github.com/jongpie/NebulaLogger https://www.salesforceben.com/easily-debug-salesforce-using-nebula-logger/ На последнем проекте, мы используем обычный custom object (Log__c) и LogService класс, где есть пару методов (synclog, asynclog) записываются, callouts, ошибки, некоторое открытие страниц или табов .... Есть reports / dashboards которые основываються на этом. + Shield Event Monitoring с 54 events (с каждым версией увеличивается). Informatica ETL всё это вытаскивает в BI и там уже разбирают - что user делал, куда зашел, на что нажал....
[quote="Eric"]На последнем проекте, мы используем обычный custom object (Log__c) и LogService класс, где есть пару методов (synclog, asynclog) записываются, callouts, ошибки, некоторое открытие страниц или табов[/quote] Да, это отличное и простое решение. Тоже часто использовал. Сейчас клиент боится за лимиты data storage и не хочет видеть лишние объекты и тонны записей в них. Поэтому нужно что-то чтобы выгружать вовне.
[quote="Dmitry Shnyrev"]Сейчас клиент боится за лимиты data storage и не хочет видеть лишние объекты и тонны записей в них.[/quote] для этого бежит батч раз в день и стирает логи в соотвествии с custom metadata type. для каждого типа лога прописано сколько дней хранить (7,14,30)
Да, это известный подход - Logs Rotation. Тут даже батч не обязательно, просто можно на каждый log insert, просто добавить удаление для небольшой пачки устаревших логов. На производительность не скажется, зато с батчем не надо гемороиться. Но тут два момента. Все равно объект + записи на орге присутствуют и клиент уже морально против этого (даже с Logs Rotation) и второй - можно умудрится нагенерить логов так что даже в 7 дней там будет тонна записей. Объект Logs__c + толковый Logs Rotation - абсолютно классический и правильный подход и must have любой более менее серьезный проект. Но мы легких путей не ищем :rolling: