Download the PHP package nelmio/js-logger-bundle without Composer

On this page you can find all versions of the php package nelmio/js-logger-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package js-logger-bundle

NelmioJsLoggerBundle

The NelmioJsLoggerBundle bundle allows you to log errors happening in the frontend.

Installation

Require the nelmio/js-logger-bundle package in your composer.json and update your dependencies.

$ composer require nelmio/js-logger-bundle

Register the bundle in app/AppKernel.php:

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Nelmio\JsLoggerBundle\NelmioJsLoggerBundle(),
    );
}

Import the bundle's routing definition in app/config/routing.yml:

# app/config/routing.yml
NelmioJsLoggerBundle:
    resource: "@NelmioJsLoggerBundle/Resources/config/routing.xml"
    prefix:   /nelmio-js-logger

Automated Error Logging

The bundle exposes two twig functions that you should put in your site template somewhere.

To enable automatic logging of javascript errors, use nelmio_js_error_logger():

{{ nelmio_js_error_logger() }}

You can optionally change the level (default is ERROR) and remove the surrounding <script>..</script> tags - don't forget to add them manually!:

<script>
    {{ nelmio_js_error_logger('WARNING', false) }}
</script>

You can also optionally give some extra context information by defining a global window.nelmio_js_logger_custom_context in the page:

<script>
    window.nelmio_js_logger_custom_context = { userinfo: 'some info', appinfo: 'another useful info' };
    {{ nelmio_js_error_logger('ERROR', false) }}
</script>

Manual Logging from JavaScript

To expose the log() function to your JS code, use nelmio_js_logger():

{{ nelmio_js_logger() }}

You can also change the function name if log is too generic for you:

{{ nelmio_js_logger('my_log_function') }}

The function signature is as such: log(level, message, context). The level and message are mandatory. The context is a data object that can contain any additional details you want to store.

Configuration

You can restrict the logging levels accessible from javascript. The point is that if some of your logging levels email you or notify you in some way, you probably do not want to allow anyone to send requests and wake you up at 2AM.

Here is the default configuration that exposes all levels:

# app/config/config.yml
nelmio_js_logger:
    allowed_levels: ['DEBUG', 'INFO', 'NOTICE', 'WARNING', 'ERROR', 'CRITICAL', 'ALERT', 'EMERGENCY']

You can also restrict the logging by ignoring some messages or scripts URLs with this configuration:

# app/config/config.yml
nelmio_js_logger:
    ignore_messages:
        - originalCreateNotification
    ignore_url_prefixes:
        - https://graph.facebook.com

The URL matches as a prefix to the script URL, and the message will match if the ignored string is found anywhere in the message.

Optional: Log the whole javascript stack trace with Stacktrace.js

Stacktrace.js is a small js-library to create javascript stack traces anywhere.

# app/config/config.yml
nelmio_js_logger:
    use_stacktrace_js: ~

If stacktrace.js is loaded before an error occurs, an array with stack trace information (file, line, column) will be logged additionally to the other information.

By default, the stacktracejs javascript file is loaded from https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/1.3.1/stacktrace.min.js you can change this by setting the path value in the config.yml

# app/config/config.yml
nelmio_js_logger:
    use_stacktrace_js: 
        path: 'your-url-for-stacktracejs'

Properly tracking scripts in other domains

If an error occurs in a script from another domain, browser same origin policy will make it to be logged with a generic message, file and line number (like Script error. {"file":"","line":"0", ...}). To properly track these scripts move them to your domain or load them using CORS:

Note that browser support for <script crossorigin> varies:

As of this writing, only Firefox supports reporting errors for cross-domain scripts. All WebKit browsers including Chrome is expected to support this very soon. This isn't a problem with IE at all, since IE already reports errors to window.onerror irrespective of the domain (yay, security!).


All versions of js-logger-bundle with dependencies

PHP Build Version
Package Version
Requires php Version >=7.2.5
ext-json Version *
psr/log Version ^1.0 || ^2.0 || ^3.0
symfony/config Version ^4.4 || ^5.3 || ^6.0 || ^7.0
symfony/dependency-injection Version ^4.4 || ^5.3 || ^6.0 || ^7.0
symfony/http-foundation Version ^4.4 || ^5.3 || ^6.0 || ^7.0
symfony/http-kernel Version ^4.4 || ^5.3 || ^6.0 || ^7.0
symfony/routing Version ^4.4 || ^5.3 || ^6.0 || ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package nelmio/js-logger-bundle contains the following files

Loading the files please wait ....