culturemesh / CultureMeshAndroid

3 stars 0 forks source link

Thorough and Appropriate Log Statements #65

Open U8NWXD opened 6 years ago

U8NWXD commented 6 years ago
  1. More thorough logging to aid debugging later. This will be especially important during beta testing where we may only have logs to figure out what went wrong.
  2. Choose appropriate log levels. Suggesion: https://stackoverflow.com/questions/25457858/android-log-levels

ERROR – something terribly wrong had happened, that must be investigated immediately. No system can tolerate items logged on this level. Example: NPE, database unavailable, mission critical use case cannot be continued.

WARN – the process might be continued, but take extra caution. Example: “Application running in development mode” or “Administration console is not secured with a password”. The application can tolerate warning messages, but they should always be justified and examined.

INFO – Important business process has finished. In ideal world, administrator or advanced user should be able to understand INFO messages and quickly find out what the application is doing. For example if an application is all about booking airplane tickets, there should be only one INFO statement per each ticket saying “[Who] booked ticket from [Where] to [Where]“. Other definition of INFO message: each action that changes the state of the application significantly (database update, external system request).

DEBUG – Developers stuff.

VERBOSE – Very detailed information, intended only for development. You might keep trace messages for a short period of time after deployment on production environment, but treat these log statements as temporary, that should or might be turned-off eventually. The distinction between DEBUG and VERBOSE is the most difficult, but if you put logging statement and remove it after the feature has been developed and tested, it should probably be on VERBOSE level.

DrewGregory commented 6 years ago

"Make sure you deactivate logging and disable the debugging option before you build your application for release"

https://developer.android.com/studio/publish/preparing

DrewGregory commented 6 years ago

Since they can be useful for development, we can keep them in a special branch.