Logging Service Provider to Disable Logging at Project or Workflow level

This idea stems directly from our experience with a couple of our RPA Project deployments to the Orchestrator. Both these projects automated a couple of commerical cloud-based applications. We added considerable number of Log Message and Write Line activities to help our Business owners track the progress of the RPA application when run from their desktops.

However, when it came to deploy these applications to the Orchestrator, many of these messages were considered to be too confidential to be logged to the Orchestrator.

We got around the problem by deactivating most of the Write Line/LogMessage activities in code. But the issue with this approach is that it warrants a significant code change and redeployment.

So comes the question: Does UiPath currently have any Logging service provider that we could plug in and enable/disable logging at a project or workflow level?

I’m trying to put something together that will allow me to enable or disable write lines at the individual message level. But before I go about doing that, I wanted to know if UiPath has a component or extension that I could look at. I did search the Go market place but did not find anything that suited my requirement.

thanks!

Log Message activity has a level field that you can set in your project and also i think in orchestrator you have option to log or not at certain level…

1 Like

Yep! My case makes it a bit tricky. Business users want logging in certain workflow sequences, and in some, they don’t. And in certain other places , they want to output messages by obscuring the sensitive pieces of the message.

Security is a paramount factor that drives everything here. Makes it hard to strike a balance sometimes :roll_eyes:

1 Like

About pieces of messages i dont have a suggestion, but for case where you dont want to change the project because of the logs, the Level will do the trick, for messages that are not to be logged at production, you can set you prod robot to not show the lower logging level like this:

1 Like

This is very helpful! I will look into this and run a couple of tests.
Yes, the part where parts of the message have to be removed can become a problem.

thanks for your input!

2 Likes

Okay! Following up on this, I’ve built a reusable library called PrimedLogging to better manage sensitive logging information. I will be publishing this as a component in a couple of days.

The master toggle setting to enable or disable all PrimedLogging activities can be managed from the Config.xlsx file (or a configuration DB).

When I move my project from DEV to UAT or PROD, the master setting is switched from “Y” to “N”, and all the critical (or sensitive) messages that aren’t supposed to be logged in UAT or PROD are skipped. :slight_smile:

The PrimedLogging can set messages to be of the following types:

  1. written to output console
  2. written to output log (at different levels shown below)

The messages written to log can be configured at different levels:

  • Info
  • Warn
  • Error
  • Fatal (Trace)

Regardless of the message type or level, each output message can be configured with a numeric message ID or an alpha-numeric custom message ID that will be prefixed to the message when it’s output.

Here’s a view of the test results with the master toggle enabled:


And here’s a view with the master toggle disabled (observe all log output is suppressed!):

Quick Update:

I had to resubmit my library as I had to redo some of the library packaging. Took me a while to research and redo the submission.

More updates to follow.

thanks

And it’s complete!

Please see published component named PrimedLogging at the Go Marketplace! :slightly_smiling_face:

https://go.uipath.com/component/primedlogging-enterprise-library-d18191

Feedback will definitely help make the component and the documentation better.

Thanks community!