Why shouldn't I use System.out.println() in android
Solution 1:
You should use the android.util.Log
class.
Here's a description of what the Log
class does:
API for sending log output.
Generally, you should use the
Log.v()
,Log.d()
,Log.i()
,Log.w()
, andLog.e()
methods to write logs. You can then view the logs in logcat.The order in terms of verbosity, from least to most is ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose should never be compiled into an application except during development. Debug logs are compiled in but stripped at runtime. Error, warning and info logs are always kept.
These are the available methods of the Log
class:
-
Log.d()
- Send aDEBUG
log message. -
Log.e()
- Send anERROR
log message. -
Log.i()
- Send anINFO
log message. -
Log.v()
- Send aVERBOSE
log message. -
Log.w()
- Send aWARN
log message. -
Log.wtf()
- What a Terrible Failure: Report an exception that should never happen.
The methods above (with the exception of Log.w
and Log.wtf
which have 3 possible patterns of arguments) require the following arguments:
-
String tag, String msg
:tag
: Used to identify the source of a log message. This value may benull
.msg
: The message you would like logged. This value may benull
. String tag, String msg, Throwable tr
- Similar to the first pattern, but allows for an exception to be specified. This pattern should be used if you want to log an exception to the log output.(For
Log.w
andLog.wtf
)String tag, Throwable tr
Similar to the third pattern, but does not allow for a message to be specified. Note that you can still pass a message but it should be in the second arrangement of arguments.
EDIT: Going straight to answer your question: println()
of System.out
and System.err
will still be displayed in logcat but with limitations.
- You can't log
VERBOSE
,ERROR
, orDEBUG
usingSystem.out
orSystem.err
. -
You can't define your own tag, it will display
System.err
orSystem.out
with your text. For instance:-
System.out.println("Hello!")
is equivalent toLog.i("System.out","Hello!")
-
System.err.println("Hello!")
is equivalent toLog.w("System.err","Hello!")
-
Solution 2:
System.out.println("")
in android will not run well because there is no Terminal that the app is corrected to.
You would be better off using Log.(d)(v)(e)(i)(w)
, because there is something actively monitoring LogCat.
System.out.println()
will print to LogCat, but only after an additional set of System instuctions, making it not as efficient, however, as i said, it still works.
Solution 3:
if we want to trace the android project
we can do it using Log class
there is some methods like
Log.e(TAG,MESSAGE)
Log.v(TAG,MESSAGE)
Log.w(TAG,MESSAGE)
Log.d(TAG,MESSAGE)
Log.i(TAG,MESSAGE)
its a static method of Utils package. put it line by line and u can watch it in the LogCat..
thats at enjoy with android