Tengo una pregunta anterior y para acercarme a una solución, quiero habilitar el inicio de sesión de Broker Mosquitto en Windows 7.
Originalmente comencé el corredor manualmente de la siguiente manera:
mosquitto -p 1883 -v
-v
significa el registro detallado de la consola. Pero esto no proporciona suficiente información, solo la siguiente línea en caso de mi problema:
1486293976: Socket error on client <unknown>, disconnecting.
He intentado hacer lo que se describe en esta respuesta . Aquí está la parte de registro del archivo de configuración:
# Note that if the broker is running as a Windows service it will default to
# "log_dest none" and neither stdout nor stderr logging is available.
# Use "log_dest none" if you wish to disable logging.
log_dest stdout
# If using syslog logging (not on Windows), messages will be logged to the
# "daemon" facility by default. Use the log_facility option to choose which of
# local0 to local7 to log to instead. The option value should be an integer
# value, e.g. "log_facility 5" to use local5.
#log_facility
# Types of messages to log. Use multiple log_type lines for logging
# multiple types of messages.
# Possible types are: debug, error, warning, notice, information,
# none, subscribe, unsubscribe, websockets, all.
# Note that debug type messages are for decoding the incoming/outgoing
# network packets. They are not logged in "topics".
log_type error
log_type warning
log_type notice
log_type information
# Change the websockets logging level. This is a global option, it is not
# possible to set per listener. This is an integer that is interpreted by
# libwebsockets as a bit mask for its lws_log_levels enum. See the
# libwebsockets documentation for more details. "log_type websockets" must also
# be enabled.
#websockets_log_level 0
# If set to true, client connection and disconnection messages will be included
# in the log.
connection_messages true
# If set to true, add a timestamp value to each log message.
log_timestamp true
En este caso, he iniciado el corredor de la siguiente manera:
mosquitto -p 1883
-v
La opción anularía el archivo de configuración con la configuración predeterminada, así que lo he dejado fuera. Pero no veo ningún registro en la consola.
En lugar de stdout
haber intentado iniciar sesión en un archivo, y cambié la configuración de la siguiente manera:
log_dest file d:\mosquitto.txt
Creé el archivo manualmente y comencé el corredor de la misma manera, pero fue en vano.
No recibo ningún mensaje de registro si no uso la -v
opción. ¿Cómo debe hacerse correctamente?
fuente
log_type debug
olog_type all
te da más información?-v
opción proporciona algunas entradas de registro en la consola (cmd) pero que usa la configuración predeterminada.Respuestas:
Esto es lo que hago. Secuencia de comandos siguiente guardada como timestampLog.vbs:
Luego ejecuto esto desde la línea de comandos:
Donde como quiera cambiar la ruta a su carpeta mosquitto y cambiar la ruta "logfile.txt" a lo que desee.
Si esto es lo que está buscando, no lo sé, pero a alguien más podría gustarle la solución provista aquí. Para romper la línea de comando:
C:\Program Files\mosquitto>
es la carpeta local para Mosquittomosquitto_sub
es el archivo .exe usado para escuchar al corredor-t +/#
"-t" es dar el archivo .exe la información para escuchar t OPIC de + / # , que es todos los temas de los clientes. "#" significaría todos los temas, incluso los temas creados por el agente. \ $ SYS / # solo escuchará los temas de los corredores. Es posible tener múltiples -t (creo).-v
es dar al archivo .exe la información para generar los temas detallados, es decir, también generar el tema en sí (no solo su valor).|
es canalizar este primer comando al comando de script.cscript //nologo timestampLog.vbs
es ejecutar cscript.exe con el script vbs que escribimos anteriormente.//nologo
le dice a la línea de comandos que envíe la información de salida de cscript.exe a un archivo externo en lugar de la línea de comandos en sí.2>
le dice a la línea de comandos que envíe "StdErr" (que es lo que le dijimos al script para que canalice todos los mensajes en el archivo .vbs).C:\*USER*\Desktop\logfile.txt
es la ruta y el nombre del archivo de salida. En lugar de .txt, podría considerar usar .log u otra cosa.fuente
La respuesta a esta pregunta: ¿Cómo habilitar WebSockets en Mosquitto ejecutándose en Windows? En realidad respondió a esta pregunta también.
Al final resultó que el archivo de configuración de Mosquitto tiene que agregarse explícitamente en la línea de comando.
Después de esto pude obtener información adicional sobre eventos de error de socket o tal.
fuente
carga útil de registro
Si desea registrar la carga útil del mensaje PUBLICAR, aquí agrego un registro personalizado en mosquitto v1.5.3 souce:
Fuente en Git Hub .
// solo muestra la carga útil ASCII, los datos binarios pueden romper la terminal.
uso en mosquitto.conf:
carga útil de log_type
resultado
el registro se convierte en:
fuente
Encontré esto hace un tiempo pero no puedo atribuirlo al autor original. Funciona muy bien para los registros existentes, pero no puede 'colarse' con esta solución:
sudo cat /var/log/mosquitto/mosquitto.log | grep -v datab|perl -pe 's/(\d+)/localtime($1)/e'
Usando esto en Linux, pero debería funcionar en WSL / cygwin.
fuente
cat
portail -f
? y si no, entonces el gato es redundante y debería dejar que grep abra el archivo