Làm cách nào để viết kết quả đầu ra cho Đăng nhập Android?


153

Tôi muốn viết một số đầu ra gỡ lỗi vào nhật ký để xem xét nó với logcat.

Nếu tôi viết một cái gì đó cho System.out thì điều này đã được hiển thị trong logcat.

Cách sạch để ghi vào nhật ký và thêm cấp độ và thẻ vào đầu ra của tôi là gì?

Câu trả lời:


211

Nhìn vào android.util.Log. Nó cho phép bạn ghi vào nhật ký với nhiều cấp độ nhật ký khác nhau và bạn có thể chỉ định các thẻ khác nhau để nhóm đầu ra. Ví dụ

Log.w("myApp", "no network");

sẽ đưa ra cảnh báo với thẻ myApp và thông báo không có mạng.


Điều gì sẽ khác biệt bằng cách sử dụng log.d?
JMASTER B

5
wtrong Log.w(...)viết tắt để cảnh báo. Có nhiều phiên bản hơn : d- gỡ lỗi, e- lỗi, i- thông tin, v- dài dòng, wtf- Thật là một thất bại khủng khiếp. ;-)
patryk.beza

20

Thẻ chỉ được sử dụng để dễ dàng tìm thấy đầu ra của bạn, vì Đầu ra của LogCat đôi khi có thể rất dài. Bạn có thể định nghĩa một nơi nào đó trong lớp của bạn:

chuỗi ký tự tĩnh cuối cùng TAG = "myApp";

và sử dụng nó khi gỡ lỗi

Log.v (TAG, "đã làm một cái gì đó");

nhập mô tả hình ảnh ở đây

Bạn cũng có thể áp dụng Bộ lọc để chỉ tìm kiếm thẻ.


17

Sử dụng android.util.Logvà các phương thức tĩnh được định nghĩa ở đó (ví dụ e(),, w()).


8
import android.util.Log;

và sau đó

Log.i("the your message will go here"); 

5

Xin vui lòng xem các bản ghi theo cách này,

Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)

1

Bạn có thể sử dụng libary của tôi được gọi là RDALogger. Đây là liên kết github .

Với thư viện này, bạn có thể đăng nhập tin nhắn của mình với tên phương thức / tên lớp / số dòng và liên kết neo. Với liên kết này, khi bạn nhấp vào nhật ký, màn hình sẽ chuyển đến dòng mã này.

Để sử dụng thư viện, bạn phải thực hiện dưới đây.

ở cấp độ gốc

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

trong cấp độ ứng dụng

dependencies {
            implementation 'com.github.ardakaplan:RDALogger:1.0.0'
    }

Để khởi tạo thư viện, bạn nên bắt đầu như thế này (trong Application. Class hoặc trước khi sử dụng lần đầu)

RDALogger.start("TAG NAME").enableLogging(true);

Và hơn bạn có thể đăng nhập bất cứ điều gì bạn muốn;

    RDALogger.info("info");
    RDALogger.debug("debug");
    RDALogger.verbose("verbose");
    RDALogger.warn("warn");
    RDALogger.error("error");
    RDALogger.error(new Throwable());
    RDALogger.error("error", new Throwable());

Và cuối cùng đầu ra hiển thị cho bạn tất cả những gì bạn muốn (tên lớp, tên phương thức, liên kết neo, thông báo)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info


0

Gần đây tôi tìm thấy cách tiếp cận này để viết nhật ký trong Android, mà tôi nghĩ là siêu tuyệt vời.

public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;

public static void showLogs(String message) {
        if (FORCED_LOGGING) {
            StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];

            String fullClassName = caller.getClassName();
            String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
            String methodName = caller.getMethodName();
            int lineNumber = caller.getLineNumber();

            Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
        }
    }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.