Регистрация  |  Вход

Опять к теме логирования в Salesforfce.

Кто-нибудь что использует из сторонних сервисов для логирования из Salesforce?

Вернулся пилить на Salesforce и реально понимаю что мне не хватает обычных логов да хотя бы для минимальных событий по типа кто-то что-то когда-то сделал. Стараешься конечно по максимуму использовать SObjects для хранения информации, но все равно, простых логов не хватает. Уже пару раз вставали такие вопросы - поменялся какой-то статус или какие-то данные, был запущен какой-то метод, а кто и почему это сделал никто не знает и вопрос сразу прилетает мне как разрабу. А что я сделаю - поля или отдельного объекта для хранения информации об этом событии у меня нет. А просто скинуть какое сообщение во внешний сервис логов или просто отловить эксепшен, собрать инфу и тоже в логи отправить было бы крайне полезно.

Вот опять с нуля вопрос - какой внешний сервис или тулзу использовать и как в нее лить логи.
Кто-нибудь что использует из сторонних сервисов для логирования из Salesforce?

Вернулся пилить на Salesforce и реально понимаю что мне не хватает обычных логов да хотя бы для минимальных событий по типа кто-то что-то когда-то сделал. Стараешься конечно по максимуму использовать SObjects для хранения информации, но все равно, простых логов не хватает. Уже пару раз вставали такие вопросы - поменялся какой-то статус или какие-то данные, был запущен какой-то метод, а кто и почему это сделал никто не знает и вопрос сразу прилетает мне как разрабу. А что я сделаю - поля или отдельного объекта для хранения информации об этом событии у меня нет. А просто скинуть какое сообщение во внешний сервис логов или просто отловить эксепшен, собрать инфу и тоже в логи отправить было бы крайне полезно. 

Вот опять с нуля вопрос - какой внешний сервис или тулзу использовать и как в нее лить логи. 
Кстати интересный видосик на глаза попался и на достаточно интересные мысли натолкнул.

Можно воспользовать Platform Event (или что там в ближайшее время планируют внедрять по теме Pub/Sub). Писать логи в виде Events а потом просто забирать каким нибудь даже может самописным тулзом. Просто и со вкусом. И не нужны танцы с бубнами вокруг SObjects или Callouts.

Кстати интересный видосик на глаза попался и на достаточно интересные мысли натолкнул.

Можно воспользовать 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-deb ... -logger/

На последнем проекте, мы используем обычный custom object (Log__c) и LogService класс, где есть пару методов (synclog, asynclog) записываются, callouts, ошибки, некоторое открытие страниц или табов ....
Есть reports / dashboards которые основываються на этом.

+ Shield Event Monitoring с 54 events (с каждым версией увеличивается).

Informatica ETL всё это вытаскивает в BI и там уже разбирают - что user делал, куда зашел, на что нажал....
есть которые используют 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 делал, куда зашел, на что нажал....
Eric
На последнем проекте, мы используем обычный custom object (Log__c) и LogService класс, где есть пару методов (synclog, asynclog) записываются, callouts, ошибки, некоторое открытие страниц или табов
Да, это отличное и простое решение. Тоже часто использовал. Сейчас клиент боится за лимиты data storage и не хочет видеть лишние объекты и тонны записей в них. Поэтому нужно что-то чтобы выгружать вовне.
[quote="Eric"]На последнем проекте, мы используем обычный custom object (Log__c) и LogService класс, где есть пару методов (synclog, asynclog) записываются, callouts, ошибки, некоторое открытие страниц или табов[/quote]
Да, это отличное и простое решение. Тоже часто использовал. Сейчас клиент боится за лимиты data storage и не хочет видеть лишние объекты и тонны записей в них. Поэтому нужно что-то чтобы выгружать вовне.
Dmitry Shnyrev
Сейчас клиент боится за лимиты data storage и не хочет видеть лишние объекты и тонны записей в них.

для этого бежит батч раз в день и стирает логи в соотвествии с custom metadata type.
для каждого типа лога прописано сколько дней хранить (7,14,30)
[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 любой более менее серьезный проект. Но мы легких путей не ищем
Да, это известный подход - Logs Rotation. 
Тут даже батч не обязательно, просто можно на каждый log insert, просто добавить удаление для небольшой пачки устаревших логов. На производительность не скажется, зато с батчем не надо гемороиться.
Но тут два момента. Все равно объект + записи на орге присутствуют и клиент уже морально против этого (даже с Logs Rotation) и второй - можно умудрится нагенерить логов так что даже в 7 дней там будет тонна записей. 
Объект Logs__c + толковый Logs Rotation - абсолютно классический и правильный подход и must have любой более менее серьезный проект. Но мы легких путей не ищем :rolling: