# 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.