Apps can provide quite extensive logging information. To be able to handle that amount of data generated, Android organizes its system logs in circular buffers (also called "ring buffer"). This way the size of the logs is fixed (and can be adjusted to available ressources); as soon as the buffer is full, older entries "age out" and get replaced by newer ones.
Android provides different tools to investigate its logs. There are several apps available at Google Play (watch for the terms "logcat" or "catlog"), but starting with JellyBean they require root access to show all available logs. From a shell (e.g. via ADB or a terminal emulator) there are several tools available by default, which require root only for a subset of their operations. Two examples include
For more details, please also see: