<html>

<body>

    <h1>Log entry added events</h1>

    <button id="consoleLog" onclick="helloWorld()">Click me for console logs</button>

    <button id="consoleError" onclick="consoleError()">Click me for console error</button>

    <button id="jsException" onclick="createError()">Click me for jsException logs</button>

    <button id="logWithStacktrace" onclick="bar()">Click me to get an error with stacktrace</button>

    <script>
        function helloWorld() {
            console.log('Hello, world!')
        }

        function createError() { throw new Error('Not working') }

        function foo() { throw new Error('Not working'); }

        function bar() { foo(); }

        function consoleError() { console.error('I am console error'); }
    </script>

</body>

</html>
