Вам больше не нужно ставить Log.d() в каждой линии!

Когда мы отлаживаем приложения, мы иногда начинаем плодить логи по всему коду, чтобы разобраться с какой-либо проблемой.

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class MainActivity : AppCompatActivity() {
 
    lateinit var retrofit: Retrofit
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        setupToolbar()
        Log.d("MyApp", "Toolbar Set")
 
        initRetrofit()
        Log.d("MyApp", "Retrofit Initialized")
 
 
        var myButton = findViewById<Button>(R.id.search_close_btn)
        myButton.setOnClickListener {
            Log.d("MyApp", "My Button Clicked")
        }
 
        Log.d("MyApp", "Activity Creation Done!")
 
    }
}

 

Это прекрасно работает, но бывает так, что мы забываем удалить логи перед тем как закоммитаться, и они «благополучно» попадают в продакшн код.

Хорошая практика — не оставлять логи для отладки после её завершения, даже если вы используете ProGuard для их автоматического удаления в скомпилированном коде, так как они оказывают пагубное влияние на общую читабельность вашего кода. Как и комментарии, логи могут легко начать расходиться с окружающим их кодом, в лучшем случае становясь бесполезными, а в худшем вводящими в заблуждение.

Ситуация усложняется, когда выведение логов требует соблюдения определённых условий. Теперь это не просто бесполезное нагромождение if else, но ещё и потенциально дорогостоящий код.

Но, оказывается, есть очень простой способ решения этой проблемы. IntelliJ и Android Studio позволяют создавать точки прерывания (англ. breakpoints), не прерывающие исполнение кода (да, это законно).

Сначала создайте точку прерывания на любой строке, либо щелкнув в левой части редактора, либо с помощью сочетания клавиш Ctrl-F8. Затем вы можете отредактировать точку прерывания, либо щелкнув по ней правой кнопкой мыши, либо используя комбинацию клавиш Ctrl-Shift-F8. Вы увидите такое окно:

 

 

Затем снимите флажок Suspend (рус. приостановить), и вы увидите больше параметров в этом модальном окне:

 

 

Теперь добавьте любые логи в поле Evaluate and log следующим образом:

 

 

И после удаления всех логов из кода и добавления их в точки прерывания ваш код будет выглядеть чистым:

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
class MainActivity : AppCompatActivity() {
 
    lateinit var retrofit: Retrofit
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        setupToolbar()
        initRetrofit()
        
        var myButton = findViewById<Button>(R.id.search_close_btn)
        myButton.setOnClickListener {
            
        }
 
    }
}

 

Гораздо лучше, правда? Теперь идите и используйте непрерывающиеся точки прерывания! Все, что вам нужно сделать, это запустить приложение в режиме отладки, и сообщения будут выводиться в консоль.

О других хитростях в Android Studio читайте здесь.

Источник — https://android.jlelse.eu/add-logs-without-using-code-bd49fe9202ca

0 комментариев к статье "Логирование в Android Studio без кода"

Добавить комментарий