Hello everyone,

We have a centralized logging ELK stack where we want to store OutSystems platform logs. Please let me know how can I stream log data from Outysystems DB to ELK stack?

Thanks,


Hello Hemant.

You asked for different things.


Store OS logs in ELK: 

https://success.outsystems.com/Support/Enterprise_Customers/Upgrading/Keep_OutSystems_log_data_in_a_separate_database



Stream from OS to ELK:

Logs in OS are stored in different tables depending on the date.

https://success.outsystems.com/Documentation/11/Managing_the_Applications_Lifecycle/Monitor_and_Troubleshoot/Logging_database_and_architecture/The_log_tables_and_views

I would advise you to take the table when it is not being written on and copy all the data.


For streaming you probably want something more constant. I would do a SQL with NOLOCK to copy the data. Why in SQL? Imagine your log copying mechanism is done in OS and somehow fails That will write in the log. That means there is one more entry to send. That will cause another error... and loop.



Hi Hemant.

OutSystems 11 enables you to store the log data in a separate database. Each OutSystems 11 application writes its own log entries using an internal logging API. This logging API collects log information produced by the application and sends it to the log database. Its "Asynchronous Logging API" provides few actions to perform on Database. Possibly you can create an API to trigger it with every event of LogError and LogRecord to post it to external service which is responsible to expose to centralized logging system. Checkout  the Log data reference


You may would like to read the OutSystems manual for Keep OutSystems log data in a separate database

Regards,

Swatantra

Swatantra Kumar wrote:

Hi Hemant.

OutSystems 11 enables you to store the log data in a separate database. Each OutSystems 11 application writes its own log entries using an internal logging API. This logging API collects log information produced by the application and sends it to the log database. Its "Asynchronous Logging API" provides few actions to perform on Database. Possibly you can create an API to trigger it with every event of LogError and LogRecord to post it to external service which is responsible to expose to centralized logging system. Checkout  the Log data reference


You may would like to read the OutSystems manual for Keep OutSystems log data in a separate database

Regards,

Swatantra

Can you please explain how can we create a trigger for every event of LogError and LogRecord?