Skip to content

The logger

Raymond Hill edited this page Aug 8, 2015 · 35 revisions

Back to Wiki home


uBlock Origin comes with a logger, which gives the ability to inspect what uBlock is doing with network requests and DOM elements, whether something is blocked or allowed, and which filter, if any, matched a network request or DOM element. This logger is unified, meaning it will display everything uBlock does as it occurs.

The logger is the tool of choice to see, understand, diagnose and fix the functioning of uBlock.

To access the logger, click on the list icon of uBlock Origin's popup UI:

Figure 1

The request logger will open in a new tab (which was moved to its own window below):

Figure 2

Take note that the network request logger in uBlock is a forward-looking logger: this means only future requests can be logged.

In the spirit of efficiency, uBlock will log entries IF AND ONLY IF the logger is opened. Otherwise, if the logger is not opened, no CPU/memory resources are consumed by uBlock for logging purpose.



Components


Page selector

Figure 3

The drop-down selector is to display log entries which are related to a specific page. This will hide from view all log entries which are not related to the selected page. By selecting All again, all log entries will be displayed again.

Note in the figure above the entry named "Behind the scene": selecting this entry allows to show only behind-the-scene network requests. Behind-the-scene network requests are requests which do not originate from any specific tab, and are denoted by the eye-slash icon in the second column. More about behind-the-scene network requests here.


Reload

Figure 4

The big reload button aside the page selector is to force a reload of the content of the selected page. This button is enabled only for when a specific page is selected.


Expand

Figure 5

By default log entries in the logger are collapsed so as to take no more than one line. Some log entries however might be truncated as a result. This button is to force all those entries with truncated extraneous information to be fully visible.


Void log entries

Figure 6

The logger is unified, i.e. it display all network requests from all tabs at once. If you close a tab for which there are entries in the logger, these entries will be marked as void, i.e. a bold X will appear in the second column of these entries, to indicate the tab for these entries does not exist anymore.

The X button in the toolbar allows you to remove those void entries from the logger.


Clear

Figure 7

This is to clear the logger, to remove all entries from the selected context (Ars Technica tab in this example).


Filtering the logger output

Figure 8

You can visually filter entries in the logger using filter expressions. Log entries which do not match all filter expressions will be hidden from view. Syntax for a filter expression:

  • Enter foo to only show entries which have a string foo.
  • Enter |foo to only show entries which have a field starting with foo.
    • Tip: use |-- to show only entries which were blocked (-- may work for the most part, but there could be false positives).
  • Enter foo| to only show entries which have a field ending with foo.
  • Enter |foo| to only show entries which have exactly a field with foo.
  • Prefix any expression with ! to reverse the meaning of the expression.
    • !foo means display only entries which do not have the string foo in it.
    • !|-- means display only entries which were not blocked.
  • When more than one filter expression appear, a logical and between the expressions is implied.
  • You can or multiple expressions together:
    • css || image means display entries which match either css or image.
    • xhr || other |http: means display entries which match either xhr or other and have a field which starts with http:.
    • !css || image means display entries which do not match either css or images (equivalent to !css !image really).
    • Warning: With or'ed expressions, the not (!) operator can only apply to the resulting or'ed expression.
  • A special keyword can be used to filter behind-the-scene requests: bts, or |bts for a stricter filtering.

Examples:

  • !|-- facebook: show only non-blocked entries with the string facebook in it.
  • |xhr google: show only entries of type XMLHttpRequest with the word google in it.
  • !|image !|css: show only entries which are not of type image, neither css.

Maximum number of entries

Figure 9

This is the maximum number of entries allowed in the logger. When the maximum is reached, the oldest entries at the bottom will be removed to make place to newest entries at the top.

This is useful to be sure the logger does not unduly consume a huge amount of memory if left open for long period of time. Usually, the most recent entries are the ones of interest. When this value is not set, there is a built-in limit of 5,000 entries.


Accessing popup UI of a specific page

Figure 10

You can access the popup UI of a specific tab by clicking the second cell in a log entry.

This will cause all entries in the logger which are unrelated to the currently opened popup to be dimmed.


Finding from which list(s) a static filter originates

You can find out from which filter list(s) a static filter originates, by simply clicking on it:

c

a


Creating filters

Figure 11

Clicking on the 4th cell of a log entry will give you access to the filtering tools dialog (modal), from where you can easily create dynamic URL filtering rules or just standard static filters, and launch the element picker.


Dynamic URL filtering rules

Figure 12

Point-and-click to create dynamic URL filtering rules. These rules are temporary by default, you need to click the padlock if you want them to be permanent. Useful to find out which network requests need to be blocked or allowed on a page in order, to fix a broken page, or to further block more useless resources from a page.

See "Overview of uBlock's network filtering engine: details" for more details about where dynamic URL filtering fits in the overall filtering engine.


Static network filters

Figure 13

This dialog will assist you in creating static filters compatible with ABP filter syntax. Note that creating static filters incur a significant overhead relative to dynamic URL filtering rules. Typically, you will first use dynamic URL filtering rules to quickly diagnose which network requests need to be allowed/blocked.

See "Overview of uBlock's network filtering engine: details" for more details about where static filtering fits in the overall filtering engine.

Clone this wiki locally