Log window
Please read the Terms of Use for Materials on ZennoLab
Table of contents
Description
The log is used to display messages to the user. The message can be of one of three types:
informational (βGetting startedβ, βGetting startedβ, βSuccessfully created an accountβ, etc.)
warning (any non-critical errors in the template)
erroneous (when it is necessary to inform the user that there has been a serious error in the work that needs to be paid attention to).
Among other things, these three types of messages differ in icons:
Also, starting from ZennoPoster 7.2.1.0, messages can be assigned a background color
Messages are output to the log using the Notification action .
What is it used for?
Let's say that you have created a template that takes about 8 minutes to run once. You don't log at all. You run the template and it works great for one execution, two, three, five, ten. But on the 11th execution, the pattern βhangsβ - it does not succeed, but it does not exit with an error, and so on for 10, 20, 30 minutes. In such a situation, you have to forcibly terminate the program and restart the template, hoping that this situation will never happen again.
On the other hand, you can add the output of messages to the log to the template so that you can clearly see at what stage the execution is now. And if the template hangs somewhere, then according to the log we can understand in what, approximately, place the error.
If it seems to you that too many messages are being written to the ZennoPoster log, and you would not want to completely delete actions, you can make them appear only in ProjectMaker. To do this, in the Action Notification you need to uncheck the "Show in ZennoPoster" checkbox.
How to work with a window?
Enabling the log window
To enable it, click on the Window item in the top menu and select the Log item :
Appearance (Standard log)
Message display window
First, the icon corresponding to the type of message is displayed, then the time of the message and the actual text of the message.
Sort by message type and color
Using the buttons in this section, you can filter the displayed messages by their type and/or color.
Auto-scrolling
If this option is enabled, the log window will automatically scroll, thus always showing the most recent message.
In the program settings, on the Other tab, you can change the conditions under which auto-scrolling will be disabled.
Auto row height
If the message is too large, the line-height will be adjusted to fit it completely. If this option is disabled, then only the top line of this entire message will be displayed.
Clear log
Using this button, you can clear the window from all messages.
Double click on an entry in the log
If you double-click on any entry in the log, the focus of the project will shift to the action that left this entry.
The buttons from the right block of the window are minimized when the height of the log window is reduced. To get access to them, you need to click on the corresponding button.
Log context menu
When you right-click (right-click) on an entry in the log, a context menu will appear
Show action in PM
The project that generated this message will open in ProjectMaker and focus on the action that sent the message.
Copy Action Id
The unique id of the action that sent the message will be saved to the clipboard. Example id is 3e6988d1-9518-4535-a6d2-f0a33420c730
. Then you can use this id to search for a project, for more information about searching for a project, see the article Search by project.
Copy message
When you select this item, the text of the message will be saved to the clipboard.
The features described below are for advanced users.
Log file on computer
PorjectMaker and ZennoPoster additionally save logs on the computer in the directory with the installed program, in the Logs folder. This is how the path to this folder C:\Program Files\ZennoLab\RU\ZennoPosterPro V7\7.1.6.1\Progs\Logs
might look like
Splitting by projects and threads
By default, all logs from all templates are written to one file. This behavior can be changed using C# code , which must be placed at the beginning of the template:
// Redirect the log for this template to a separate file.
project.LogOptions.LogFile = @ "D: \ log.txt";
// A log file will be created for each thread.
// The names of the files (in our case, log) will be assigned thread IDs.
project.LogOptions.SplitLogByThread = true;
Extended version of the log
In the program settings, you can enable the Extended log. To do this, in the top menu, click on Edit, then Settings, then select the Debug tab and look for the Extended window for log. For the changes to take effect, you must restart ProjectMaker.
The appearance of the extended log window
The first thing that catches your eye is the appearance of headings:
Message type.
Time.
An unnamed title (in the 5.H.H.X version it was called the Way ).
Message.
By clicking on any header, you can sort messages in the log
Message filter
When you hover the mouse cursor over any of the headings, a filter icon appears.
The type of filter depends on the column in which the click was made:
date filters will be available for the Time column (you can display messages for a specific day, between two dates, before or after a specified date, and many other filters. Or you can create a complex filter with several conditions)
Β
text filters will be available for the Messages column and for the Nameless one .
Β
Auto filter and filter constructor
Right-clicking on the title will open a context menu with additional functions: grouping by the selected column, hiding columns. selection of width. Among them, we are now more interested in Auto Filter and Filter Designer.
Auto Filter
This allows you to quickly create a simple message filter. When activated, an additional line (1) appears under the headings, in which the type of filter is set and you can enter the necessary characters and\or words according to which the displayed messages will be selected. The screenshot below shows the line that appears and a simple filtering is created (2) - only those lines that contain the βoβ symbol are displayed (the search is performed by the Message column). Each line, on the left, has an icon, after clicking on which a context menu (3) appears with a choice of the type of filtration. The types of filters and the entered values depend on the type of the column: for the Time column, these are comparison operators (greater than ->, less than - <, equal to - =, etc.) and dates; for Messages - text search (Contains, does not contain, starts with, etc.) plus comparison operators.
Filter Builder - similar to an auto filter, but allows you to create much more complex filtering conditions.
When you click on this button, you can add a new condition, a group of conditions, or completely clear all search conditions. It is also necessary to define a logical connection between the conditions here:
AND - meet ALL conditions
OR - satisfy at least one of the conditions
NOT AND - DO NOT meet ALL conditions
NOT OR - DO NOT satisfy at least one of the conditions
Using this button, you can easily add an additional condition.
The column to which the filter is applied is indicated in blue in square brackets (in the screenshot, in the last condition, empty brackets are the Untitled column. Although it does not have its own name, you can filter by it).
The filter type is displayed in green.
Black text is user input for the filter.
This button makes it easy to remove the filter.
How to write in an unnamed column (and why you might need it)?
Unfortunately, it is impossible to write to this column using the standard Notification action (at the time of this writing, the latest version of the program is 7.1.6.1). To do this, you must use the Custom C# code cube and have minimal knowledge of working with C# code.
There are four methods for displaying messages in the log. - project.SendInfoToLog, project.SendWarningToLog, project.SendErrorToLog
(using this method, you can set the color of messages).
Each of these methods has an overload (work in the project.SendInfoToLog, project.SendWarningToLog, project.SendErrorToLog
methods is identical, so here we will only consider project.SendInfoToLog
)
// The first version of the method.
// Arguments:
// 1st - the line that will be displayed in the "Message" column
// 2nd - bool, whether it is necessary to display this message in the ZennoPoster log
project.SendInfoToLog ("Message", true);
// Second option:
// Arguments:
// 1st - the line that will be displayed in the "Message" column
// 2nd - row, this row will appear in an unnamed column.
// 3rd - bool, whether it is necessary to display this message in the ZennoPoster log
project.SendInfoToLog ("Message", "Way", true);
This is how the call to this code looks like:
Where it can come in handy:
in multithreaded work, you can enter the account name in the Untitled column, and the action that this account is currently performing in Messages . If the need arises, you can either group messages by this column (this is done by right-clicking on the title and selecting the appropriate option), or set up a filter.
it may be necessary to write large templates that execute many functions in one pass, for example - registration, filling out a profile, searching for a product, parsing and processing goods, publishing processed data (and all this is one template execution). Each of the described parts can contain many actions. So when logging into the Nameless column, you can write that part of the template in which the execution is now located, and write a specific action in Messages .
Useful links
Β