JavaScript-style Debug Console

This library provides a JavaScript-style debug console to Pine Coders. It supports the most commonly used utilities from the WHATWG Console Standard including the following:

 • console.log
 • console.debug
 • console.warn
 • console.error
 • console.assert
 • console.count
 • console.countReset
 • console.groupEnd
 • console.clear

In addition to the WHATWG standard, this library also supports the following methods:

 • console.hide


 • Follows the WHATWG Console Standard, which is widely adopted by all major JavaScript runtimes including browsers and Node.js.
 • Provides an out-of-box UI with pre-configured theming, ensuring a clean and professional-looking console.
 • Allows for easy UI customizations to fit your personal preferences.
 • Has extremely simple import and initialization, making it easy to integrate with your existing codebase.


1. Import this library:

import algotraderdev/Console/1

2. Initialize the console object:

var console =

// You can also specify optional params to customize the look & feel.
var console =
  position = position.bottom_right,
  max_rows = 50,
  width = 0,
  text_size = size.normal,
  background_color = #000000CC,
  timestamp_color = #AAAAAA,
  info_message_color = #DDDDDD,
  debug_message_color = #AAAAAA,
  warn_message_color = #FFEB3B,
  error_message_color = #ff3c00)

3. Use the console object to debug your code. Here are some examples:

// Basic logging
console.log('hello world!') // prints 'hello world'
console.warn('warn') // prints 'warn' in yellow
console.error('error') // prints 'error' in red
console.clear() // clears the console

// Assertion
console.assert(a.isEmpty(), 'array should be empty') // prints 'assertion failed: array should be empty' if the array is not empty

// Counter
console.count('fooFunction') // prints 'fooFunction: 1'
console.count('fooFunction') // prints 'fooFunction: 2'
console.countReset('fooFunction') // resets the counter
console.count('fooFunction') // prints 'fooFunction: 1'

// Group
// prints
// A
//   B
//     C
//     D
//   E
// F

// Hide and show
Release Notes:
Improve performance by not using `var` for constants.
Release Notes:
It seems that PineScript has released a new version that's not backward compatible and led to the following error in the script: "Invalid object name: log. Namespaces of built-ins cannot be used."
As a result, I had to modify the variable names in the script to bypass the issue.
Release Notes:
Always set the timezone as `syminfo.timezone` when calling `str.format_time`. It seems that in a new version of PineScript compiler the timezone parameter is no longer optional.

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.