web-dev-qa-db-fra.com

La balise de journalisation peut comporter au plus 23 caractères.

Depuis la mise à jour AS 1.1 Preview 2, je reçois des lignes rouges sous tous mes messages Log 

Log.d(TAG, "message");

Avec message: " La balise de journalisation peut comporter au maximum 23 caractères .. ".

Je n'ai fondamentalement rien mis à jour, à l'exception d'Android Studio. Est-ce un bug?

42
TomCB

Non, ce n'est pas un bug.

De Changements récents d'Android Studio sur 1.1 Preview 2 ,

Vérifie que la balise transmise aux appels de journalisation, si sa valeur peut être résolue, comporte au plus 23 caractères (comme requis par l'API de journalisation).

logging tag was 31

Comme expliqué brièvement sur les modifications récentes, cela est dû au fait que Log API n'autorise pas les balises de plus de 23 caractères.

SLF4J Android a une explication à cela:

[...] la longueur de telles étiquettes est actuellement limitée à 23 caractères (23 = 32 - 8 pour le préfixe d'espace de nom - 1 pour le terminateur C)

qui correspond au code source d'Android .

Actuellement, la seule fonction mentionnant explicitement cette exception est Log.isLoggable()

...

Jette

IllegalArgumentException est levé si le tag.length ()> 23.

Cependant, en fonction des commentaires, le consignateur lève apparemment l'exception en mode release (elle est ignorée en mode débogage).

Vous pouvez désactiver la vérification des peluches en suivant La réponse de Terence , mais vous avez été prévenu.

36
Andrew T.

Vous pouvez le désactiver si vous le souhaitez.

Dans Android Studio, Analysez-> Inspectez le code. 

screenshot

Sous Profil d'inspection, cliquez sur le bouton avec les 3 points horizontaux.

La fenêtre suivante devrait s'ouvrir. Recherchez "log" et décochez "Too Long Log Tags".

screenshot

Mise à jour: Android Studio 2.2, il se trouve sous Android Lint: Correctness

screenshot

43
squeeish

Compléter la réponse par @Terence

Vous pouvez également désactiver la vérification spécifique via gradle avec ceci dans votre fichier build.gradle:

lintOptions {
    disable 'LongLogTag'
}

Ou en ajoutant un fichier lint.xml à votre projet avec XML:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="LongLogTag" severity="ignore" />
</lint>
18
straya

Vous ne pouvez jamais ignorer cette vérification de la charpie, elle pourrait certainement entraîner des résultats inattendus sur votre version car elle lève des exceptions et cesse de s’exécuter (cela ne planterait pas votre application).

J'ai récemment appris une terrible leçon: tout va bien en mode débogage, mais vous vous comportez différemment selon la version.

5
Jacky

C'est un changement récent et dans cette version, c'est un nouveau test anti-peluche. Qui dit,

Vérifie que la balise transmise aux appels de journalisation, si sa valeur peut être résolue, comporte au maximum 23 caractères (comme requis par l'API de journalisation.)

Pour plus d'informations, lisez le 3ème point du lien ci-dessous.

https://sites.google.com/a/Android.com/tools/recent/androidstudio11preview2

Si vous ne voulez pas l'obtenir, réduisez le nombre de caractères de votre balise et assurez-vous qu'ils ne franchissent pas la longueur de plus de 23.

4
EagleEye