Méthode getLogger () n'est plus un membre de Logger dans log4j2?
J'ai le log4j-api-2.0.0.jar
et log4j-core-2.0.2.jar
importer dans mon build path. Mais de toute façon le code suivant ont été fail:
import org.apache.logging.log4j.core.Logger;
public class TheClass {
private static Logger log = Logger.getLogger(TheClass.class);
...
Et le message d'erreur indique que:
The method getLogger(Class<TheClass>) is undefined for the type Logger
Je suis juste curieux de savoir est getLogger()
n'est plus une méthode valable dans l'Enregistreur?
source d'informationauteur huahsin68
Vous devez vous connecter pour publier un commentaire.
Vous remarquerez
Enregistreur
plus déclare une telle méthode.log4j version 2 a fait quelques changements drastiques. Voici le journal des modifications.
getLogger
semble avoir été déplacé vers unLogManager
de la classe.Voici comment ils suggèrent de rendre la migration.
Je donne un exemple pour mieux comprendre.
avec de nouveaux Log4J 2, vous devez ajouter au moins (dans mon cas) log4j-core-2.8.2, log4j-api-2.8.2 et dans certains autres cas, vous devrez peut-être ajouter aussi log4j-web-2.8.2.
Ainsi, lorsque vous voulez obtenir un enregistrement à l'importation
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
et enfin l'utilisation sera
static final Logger LOGGER = LogManager.getLogger(WebService.class.getName());
Remarque: ne pas oublier de mettre le fichier config dans le répertoire racine du projet, d'autres sages, vous ne serez pas en mesure d'obtenir vos journaux.
Espère que cela aidera quelqu'un
Cordialement
Oui, votre observation est correcte.Il ne prend pas en charge getLogger() la méthode.
Consulter cette Documentation lien: http://logging.apache.org/log4j/2.x/log4j-core/apidocs/index.html
Exemple de tutoriel:http://www.javabeat.net/log4j-2-example/
Comme indiqué dans d'autres réponses,
Logger
est maintenant une interface et vous pouvez obtenir de l'Enregistreur d'instances de l'LogManager
.API est maintenant séparée de la mise en œuvre, afin de donner à l'équipe de la liberté de changer la mise en œuvre sans casser le code de l'utilisateur. L'API changent rarement, et en cas de modification, il sera dans un 2.x version, pas de la 2.0.x version. Cela dit, il est probablement une bonne idée de toujours utiliser la correspondance de log4j-api et log4j-core versions.
Vous utilisez log4j version 2.
D'utiliser le getLogger() dans votre classe, de l'importation de la Enregistreur de classe
import java.util.logging.Logger;
et de l'utiliser comme suit
Et rappelez-vous, cette méthode prend un argument de type chaîne.
Ou de l'Utilisation Enregistreur de données de org.apache.log4j paquet comme on le voit ci-dessous