Top
Top
LibraryEASYProcess Training GuideChapter 5: Application Logs
Intro to Logs
Canvas Screen Logs
Application Logs

Intro to Logs

As EASYProcess runs various entities, like the Processes and WebParts we have worked with so far, it can save logs of what has occurred. The most common way of doing this is by saving the XML in the database in the EP_Logs table. EASYProcess looks in this table to display logs in specific screens in EASYProcess. These screens show the raw unfiltered log data, but EASYProcess provides an easy UI for the developer to filter and search on these records.

When working within a WebPart or a Process, you will notice that a “Log” tab is in the top left of the screen. This “Log” tab shows only the logs for the entity that you are working on (Process, WebPart, etc.). This is where you should look when something is not working.

WebPart Logs

WebPart logs are generated when the WebPart you are developing is loaded on a webpage. If the WebPart is new, it will not be loaded in a webpage yet. However, you can click on the “Test” tab and EASYProcess will load your webpage in a webpage EASYProcess uses specifically for the Test tab. This will generate logs.

Process Logs

Process logs are generated when the process is run from a source. If the process is associated with a WebPart (process datasource, button process), then the logs will only generate when that WebPart loads or the WebPart’s button is clicked. So far, we have only used a stand-alone process and have been running our newly created process through the process canvas with the “Run” and “Run in Step” buttons. These generate logs that show in the “Output” tab in the left-hand panel of the Process Canvas. However, because the “Run” button runs the process from beginning to end, it will generate the type of logs that show in the “Log” tab.


Canvas Screen Logs

In EASYProcess, development is done in a Canvas Screen which will look different depending on the Entity the developer is working on. Each canvas (Process, Web Part, Workflow) has a “Log” tab in the upper left corner. The logs screen shows the logs for that specific Web Part, Process, or Workflow.

See below that each of these canvas screens have a “Log” tab in the top left.

Web Part

Process

Workflow


Application Logs

If you would like to see all logs and not just the filtered logs for a particular WebPart or Process, you can view the “Application Logs”. To navigate to the “Application Logs” screen, in the EASYProcess toolbar, go to “Logs” → “Application Logs”.

The screen is laid out the same way as the individual WebPart or Process “Log” tab. This screen is the raw unfiltered log data for all elements of the application including WebParts, Processes, Datasources, Workflows, WebPages, etc.

The log screen has the following sections:

  1. Log Level Slider
  2. Entity Log Tabs
  3. Tools
  4. Log Object Filters

Take some time to familiarize yourself with this as this is where you should go when something is not working. Reload some WebParts and check how this screen updates (when refreshed of course).

Also try forcing a Service or Datasource to throw an exception by purposely putting a wrong table name to see how the errors show up here.

Log Level Slider

The slider is used to the edit the level of logs that will be shown on this screen. The Slider contains increasing levels of logging with “Off” at the far left and “All” at the far right. Please Note that any level above “Info” should be used with caution. More logging than necessary can be hurtful to your application and performance.

Log levels exist both at the Application and the Entity (webpart, process, workflow) level. This allows users to turn off logs for the entire application, but then turn logs on for a single process which needs debugging or is currently being developed.

Off - No logging will occur.

Fatal - System level failures that could negatively impact the application will display in the EASYProcess logs screen. Database connections and other systems set up prior to the first use of EASYProcess are considered essential to EASYProcess. If these connections go down, it would generate a fatal-level log.

Error - WebPart/Process/Workflow failures that could give undesired results in process logic or page loads, but will not bring the whole application down. These will display in the EASYProcess logs screen.

For example an error-level log would be generated if a SendEmail service ran without any of the required parameters like “To” or “From”. An error-level log would also be generated if the SendEmail service was configured correctly, but the SMTP server required to send the email could not be reached.

Info - Information and output XML returned for the WebPart/Process/Workflow that ran. These will display in the EASYProcess logs screen. This will contain more than just errors and is especially useful when developing. This is the recommended logging level because it does not impact performance.

For example, our process that sent out an email would generate no “Fatal” or “Error” logs if everything worked as expected. “Info” would allow us to see the Output XML of the services that ran even if no errors occurred.

Debug - Records start and end times for Web Requests/WebParts/Processes/Workflows/APIs in a text file in the LogFiles folder of the Toolset for the Environment. These do not display in the EASYProcess logs screen. Should be used when debugging an issue that Info logs cannot help with.

For example, if a process that runs on a page load contains an infinite loop, it will never complete, so the page will never load. It will also overload and crash the Enterprise Server, which is needed to run EASYProcess. So debugging the issue in EASYProcess logs alone can very difficult because as soon as the page is loaded, the infinite loop begins and crashes the Enterprise Server Service, which makes using EASYProcess not possible. Instead, you could set the application level logs to Debug, then load the page. You can then open the text file to find the last thing that started, but did not finish. This will tell the developer troubleshooting the issue where to look for the cause.

Debug level logs should not always be on, but may be an acceptable application performance hit if it is necessary to debug an issue.

Trace - Records all input and output XML of processes in a text file in the LogFiles folder of the Toolset for the Environment. These do not display in the EASYProcess logs screen. This XML is similar to the XML usually seen in the “INFO” level logs in EASYProcess. If for some reason, logs cannot be seen in EASYProcess, but the same level of logs is still necessary, “TRACE” can allow you to write them to a text file instead.

Only recommended for expert developer and for a temporary time only. Provides lots of information, rarely needed. Should not be turned on in an application with more than one active user since logs build up so quickly and can be difficult to follow with multiple users.

Always make sure to turn logs off after the action you wish to capture the logs for has completed. Having “TRACE” on can impact performance and cause disk space server issues if left on for longer than needed (many text files created).

Entity Log Tabs

The tabs can be used to further filter down to a particular entity (webpart, process, workflow). If you only want to see the logs generated from a particular entity, you could stay on the Application tab and use the “Log Object Filters” to narrow your search by “Type” and then even further with the other filters available.

Alternatively, you could use the Tabs at the top left. The screens within each of these tabs have elements similar to the Application Logs screen such as a tools and log data XML represented in a tree view. However, using the screens available in these tabs, you could also view and change the entity log level, which is not available in the Application tab.

This is an easy way to change the log level for a particular process (or another entity like WebPart or Workflow) without having to open the process up in Design mode.

Tools

The Application Logs screen allows you to view some logs in EASYProcess and gives you tools to traverse through the logs easily.

Refresh (F5) - The list of logs displayed may become old. The list is first loaded when you open the Application Logs screen. Remaining on this screen without refreshing it will not load any new logs. F5 can also be used to refresh.

Purge - This clears the accumulated logs. The logs are stored in the database in the EP_Logs table. This will perform a SQL delete on the table. If the logs are opened for a single webpart or process, pressing “Purge” will prompt you choose a selection between “Entire Application Logs” or “Only Current WebPart/Process Logs”. If you are in the Application Logs, you will still be warned if you are sure you want to purge all logs.

More - If there are very many logs, the screen may only show a subset of them. More allows you to load more into the list.

Up/Down - If you have a single log record selected, you can click “Up” or “Down” to scroll up or down in the list. The up and down arrow keys will also accomplish this.

Reset - If you have selected any Log Object filters, “Reset” will clear them and refresh the list.

Log Object Filters

Log Level Filter - All log objects displayed in the Application Logs screen have an associated Log Level (Fatal, Error, Info). This filter allows us to filter on that level. Multiple levels can be checked to allow multiple to display on the page.

Log Object Type Filter - All log objects displayed in the Application Logs screen have an associated Type. The type is designated based on what ran to generate the logs (webpart, process, etc). This filter allows us to filter on that Type.

Process Type Filter - If we are trying to display all types of processes, we could use the “Log Object Type Filter” and select “Process”. However, many different types of processes exist. This filter allows us to filter on specific types of processes.

Log Object Filter - The Log Object Filter allows us to apply more general filters than the others available.

  • Text Box Search - Searches “Entity Name”, “LogMessage” and “LogData” attributes of the logs for the typed in value. Can be either a like search or an exact match depending if the “Exact Match” checkbox is checked.
  • Entity Id - If you have a specific EntityId in mind, you can type it here, but the most useful feature of this is the drop down. The values in the drop down are all the distinct EntityIds that currently exist in the logs.
  • Entity Type - If you have a specific Entity type in mind, you can type it here, but for that purpose you could also use the “Log Object Type Filter” or “Process Type Fiter” since they are filtering on the same Log Object property. The real useful feature of this is the drop down. The values in the drop down are all the distinct Entity Types that currently exist in the logs.
  • Filter On Selected Entity - If you found a particular log in the Application Logs screen and wanted to more logs like it, you could use this feature. This means if you select a button process, you could click the checkbox and only the logs for this button process would show. To use this feature, first select the log you would like to see more of. Click “Filter on Selected Entity”. The logs will be filtered to show only the EntityId you selected


Powered by EASYProcess (© 2019 K-Rise Systems, Inc).