Comment désactiver / désactiver la fonction de journalisation de Storm
Je veux désactiver la fonctionnalité d'enregistrement proposé par défaut lors de cluster local.
Actuellement, sa journalisation de nombreuses informations sur la console.
Ci-dessous l'exemple de journal:
261 [main] INFO backtype.storm.daemon.task - Shut down task Getting-Started-Toplogie-1-1376388324:2
2261 [main] INFO backtype.storm.daemon.task - Shutting down task Getting-Started-Toplogie-1-1376388324:1
2262 [Thread-24] INFO backtype.storm.util - Async loop interrupted!
2276 [main] INFO backtype.storm.daemon.task - Shut down task Getting-Started-Toplogie-1-1376388324:1
2278 [main] INFO backtype.storm.daemon.worker - Terminating zmq context
2279 [main] INFO backtype.storm.daemon.worker - Disconnecting from storm cluster state context
2279 [main] INFO backtype.storm.daemon.worker - Waiting for heartbeat thread to die
2279 [Thread-27] INFO backtype.storm.util - Async loop interrupted!
2308 [main] INFO backtype.storm.testing - Shutting down in process zookeeper
2309 [main] INFO backtype.storm.testing - Done shutting down in process zookeeper
2309 [main] INFO backtype.storm.testing - Deleting temporary path /tmp/255fe7c8-1407-4f43-8771-2217905232ab
Après être passé par de nombreuses docs, j'ai fini avec le code ci-dessous, je suis en mesure de désactiver la journalisation de l'intérieur de la classe.
static Logger logger = Logger.getLogger(TopologyMain.class);
public static void main(String[] args) throws InterruptedException, AlreadyAliveException, InvalidTopologyException {
logger.setLevel((Level) Level.FATAL);
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
}
}
De sortie (correct) : 0 [main] FATAL TopologyMain - Here is some FATAL
Mais j'ai besoin de changer de configurer la journalisation de la tempête/zookeper,etc..
Quelqu'un pourrait s'il vous plaît aider sur ce point?
Mise à jour: voici le code que j'ai essayé, mais cela ne fonctionne pas. J'ai essayé avec la version 0.7.1, 0.8.2 & 0.9.0-tec*
//Configuration
Config conf = new Config();
conf.put(Config.TOPOLOGY_DEBUG, false); //Tried this alone
conf.setDebug(false); //Tried this alone & tried both together as well.. No change :-(
source d'informationauteur Amol M Kulkarni
Vous devez vous connecter pour publier un commentaire.
Tempête est vraiment bavard et raconte beaucoup d'informations mais si vous voulez le silence, vous pouvez définir Config.TOPOLOGY_DEBUG à false.
Lorsque vous définissez Config.TOPOLOGY_DEBUG pour vrai, vous dites Tempête pour enregistrer un message chaque fois qu'un n-uplet est émise à partir du bec ou de la culasse.
Ajouter le code ci-dessous dans log4j.xml.Il suffit d'imprimer vos journaux et de la console de sorties :-
Et d'utiliser l'Enregistreur.getLogger(Classe) dans vos classes.
Cela fonctionne pour moi (tempête version 0.9.0.1):
J'ai trouvé cette question lors de la tentative d'évaluer la Tempête à l'aide d'un test local de l'environnement. J'ai créé un projet en fonction de la
storm-core
version1.1.0
qui est la dernière version stable au moment de la rédaction de cet article, donc je ne sais pas si cela s'applique pour quelqu'un d'autre.Inspecter les dépendances Maven, et d'élargir le contenu de la
storm-core-1.1.0.jar
a révélé que le fichier de configuration de la bibliothèque log4j de journalisation de la dépendance a été appelélog4j2.xml
. Avec la prise de conscience que le mécanisme d'enregistrement a été log4j 2 , j'ai consulté la documentation ici: https://logging.apache.org/log4j/2.x/manual/index.html j'ai créé un nouveaulog4j2.xml
fichier soussrc/main/resources
(mon projet Maven-configuré, c'est donc à la racine du classpath). J'ai commencé par copier le contenu du fichier existant, et en modifiant les niveaux de journal pour l'enregistreurs à "OFF":De l'exécution d'un exemple "hello world", quel que soit le réglage de
conf.debug()
indique que depuis il n'y a aucun mécanisme par lequel l'enregistrement doit être possible à tous les journaux (le plus utilement Système.out) sont maintenant morts silencieux, sauf pour les invocations deSystem.out.println()
j'ai placé dans mon test de becs /boulons. C'est exactement ce que je voulais! Espérons que cela aide quelqu'un d'autre que moi!Il y a une belle documentation sur la configuration du niveau de journal de façon dynamique. Il peut être fait par le biais de l'INTERFACE utilisateur ainsi que l'aide de la CLI. Le plus tard semble meilleure pour moi. Une fois que vous commencez la topologie que vous pouvez simplement utiliser la commande suivante (à partir de l'intérieur de la Tempête du répertoire d'installation):
Pour plus de détails, veuillez consulter ce lien
Créer un fichier "log4j2.xml" dans src/main/resources (projet Maven) fonctionne pour moi!