আমি কীভাবে লগ ইন অ্যান্ড্রয়েডে আউটপুট লিখব?


153

লগক্যাট দিয়ে পর্যালোচনা করতে আমি কিছু ডিবাগিং আউটপুট লিখতে চাই।

যদি আমি সিস্টেমকে কিছু লিখি তবে এটি ইতিমধ্যে লগকটে প্রদর্শিত হয়।

লগতে লিখতে এবং আমার আউটপুটটিতে স্তর এবং ট্যাগ যুক্ত করার পরিষ্কার উপায় কী?

উত্তর:


211

মধ্যে তাকান android.util.Log। এটি আপনাকে বিভিন্ন লগ স্তরের সাথে লগে লিখতে দেয় এবং আউটপুটকে গ্রুপ করতে বিভিন্ন ট্যাগ নির্দিষ্ট করতে পারে। উদাহরণ স্বরূপ

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

ট্যাগটি মাই অ্যাপ এবং বার্তাটি কোনও নেটওয়ার্কের সাহায্যে একটি সতর্কতা আউটপুট দেবে।


ব্যবহার করে log.dকী আলাদা হবে ?
JMASTER বি

5
wমধ্যে Log.w(...)সতর্কবার্তা জন্য দাঁড়িয়েছে। আছে আরো : সংস্করণ d, ডিবাগ - e, ত্রুটি - i- তথ্য, v- ভার্বোস, wtf- কী ভয়ানক ব্যর্থ। ;-)
patryk.beza

20

ট্যাগটি সহজেই আপনার আউটপুট সন্ধান করতে ব্যবহৃত হয়, কারণ লগগেটের আউটপুট কখনও কখনও খুব দীর্ঘ হতে পারে। আপনি আপনার শ্রেণীর কোথাও সংজ্ঞা দিতে পারেন:

ব্যক্তিগত স্ট্যাটিক ফাইনাল স্ট্রিং TAG = "মাই অ্যাপ";

এবং ডিবাগ করার সময় এটি ব্যবহার করুন

লগ.ভি (TAG, "কিছু করেছে");

এখানে চিত্র বর্ণনা লিখুন

আপনি কেবল ট্যাগ অনুসন্ধানের জন্য একটি ফিল্টারও প্রয়োগ করতে পারেন।


17

ব্যবহার android.util.Logএবং স্থির পদ্ধতি সেখানে সংজ্ঞায়িত (যেমন e(),, w())।



5

লগগুলি এইভাবে দেখুন,

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

আপনি আরডিএলওগার নামে আমার লিবারিটি ব্যবহার করতে পারেন। এখানে গিথুব লিঙ্ক

এই লাইব্রেরির সাহায্যে আপনি নিজের বার্তাটি পদ্ধতির নাম / শ্রেণীর নাম / লাইন নম্বর এবং অ্যাঙ্কর লিঙ্ক দিয়ে লগ করতে পারেন। এই লিঙ্কটি সহ, আপনি লগ ক্লিক করলে, পর্দা কোডের এই লাইনে যায়।

লাইব্রেরি ব্যবহার করতে, আপনাকে নীচে বাস্তবায়ন করতে হবে।

মূল স্তর গ্রেড মধ্যে

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

অ্যাপ স্তরের গ্রেডে in

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

লাইব্রেরি শুরু করার জন্য, আপনার এটির মতো শুরু করা উচিত (অ্যাপ্লিকেশন.ক্লাসে বা প্রথম ব্যবহারের আগে)

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

এবং আপনি যা চান লগ করতে পারেন তুলনায়;

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

এবং অবশেষে আউটপুট আপনাকে যা চাইবে তা দেখায় (শ্রেণীর নাম, পদ্ধতির নাম, অ্যাঙ্কর লিঙ্ক, বার্তা)

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

0
String one = object.getdata();
Log.d(one,"");

2
সাধারণত বেনাম কোডের কয়েকটি সারি পোস্ট করার পরিবর্তে কোনও সমাধান ব্যাখ্যা করা ভাল। আপনি কীভাবে আমি একটি ভাল উত্তর লিখতে পারি , এবং পুরো কোড-ভিত্তিক উত্তরগুলিও ব্যাখ্যা
আন ফাম

0

সম্প্রতি আমি অ্যান্ড্রয়েডে লগগুলি লেখার এই পদ্ধতির সন্ধান পেয়েছি, যা আমার কাছে দুর্দান্ত দুর্দান্ত বলে মনে হয়।

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);
        }
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.