# Alert boxes
+ Very easy to use, suitable for simple scripts.
– No control of output.
– Requires multiple clicks on alert boxes which can be annoying.
# Plugins and Browser included tools
+ Quick overview of errors.
– Time required in learning, some debuggers can be very complex.
– Portability issues as these tools are browser dependent.
– Fail to provide the knowledge of flow of the code.
– Lacks the ability to log from the code.
# Logging by appending to the DOM
+ Very helpful in development phase.
– Messages by this logger can’t be persisted.
# Logging with AJAX pattern
+ Allows persistence of error messages.
+ Allows gathering of client-side usage statistics, this can prove to be valuable information for the websites with rich user interfaces.
– Raises an issue of user privacy as this technique can easily be quoted as used for spying on users.