Hat pulseaudio ein Fehlerprotokoll?

8

Um bessere Informationen für meine anderen Fragen zu Browsern und Pulse-Audio bereitzustellen , wollte ich wissen, ob ich hilfreiche Protokollinformationen erhalten kann.

Es scheint jedoch keine Protokolldatei in /var/logBezug auf Pulse-Audio zu geben, zumindest nicht, die ich sehen kann, und möglicherweise nicht standardmäßig.

Kann ich eine Art Protokollausgabe erhalten, die ich entweder über meinen Browser oder über Pulse Audio (das einen Netzwerkserver verwendet) aktivieren kann, damit ich feststellen kann, ob Fehler oder hilfreiche Meldungen vorliegen?

Fragesteller
quelle

Antworten:

12

Dies ist ein Auszug aus man pulseaudio

   --log-level[=LEVEL]
          If an argument is passed, set the log  level  to  the  specified
          value, otherwise increase the configured verbosity level by one.
          The log levels are numerical  from  0  to  4,  corresponding  to
          error,  warn,  notice, info, debug. Default log level is notice,
          i.e. all log messages with lower log levels are printed:  error,
          warn, notice.

   -v     Increase  the configured verbosity level by one (see --log-level
          above). Specify multiple times to increase  log  level  multiple
          times.

   --log-target={auto,syslog,stderr}
          Specify  the  log target. If set to auto (which is the default),
          then logging is directed to syslog when --daemonize  is  passed,
          otherwise to STDERR.

Also, um deine Frage zu beantworten. Nein, standardmäßig hat es kein Protokoll, es sendet seine Protokollausgabe syslogals Daemon (wenn es im Hintergrund ausgeführt wird) oder STDERRwenn es im Terminal ausgeführt wird (auch bekannt als die Ausgabe im Terminal).

Sie haben (möglicherweise) drei Möglichkeiten, um die benötigten Protokollinformationen in einem schönen Paket zu erhalten:

  • Verwenden Sie es im Terminal

  • Siehe (und positive Bewertung: P) der anderen Antwort für einen guten Trick zum Herausfiltern der Pulseaudio-Ausgabe von syslog.

oder

  • Der Versuch, die --log-target=Datei in eine neue Protokolldatei zu ändern (befindet sich /var/log/vermutlich in. Sie möchten wahrscheinlich zuerst eine leere Datei erstellen). Ich habe das nicht ausprobiert, daher funktioniert es möglicherweise nicht ...

Für jede Option können Sie bei Bedarf auch weitere Debugging-Informationen übergeben -voder --log-level=abrufen.

Bearbeiten: Ich habe gerade festgestellt, dass es schwierig ist, Argumente an pulseaudio zu übergeben, da ein neuer Daemon sofort automatisch erstellt wird, wenn Sie ihn töten. Stattdessen....

So ändern Sie das Standardprotokollverhalten, ohne den automatischen Spawn zu deaktivieren:

Bearbeiten /etc/pulse/daemon.conf(mit Sudo-Berechtigungen) und Kommentieren und Ändern dieser Protokolleinstellungen nach Bedarf.

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

So deaktivieren Sie Autospawn, damit Sie es in einem Terminal ausführen können:

versuchen Bearbeitung /etc/pulse/client.conf(auch mit sudo - Berechtigungen) und uncommenting ; autospawn = yesund Ändern der yeszu no. Ich habe dies nicht getestet, daher weiß ich nicht, ob es funktionieren wird.

Nachdem Sie Autospawn deaktiviert haben, beenden Sie den Daemon mit pulseaudio --killund starten Sie ihn erneut pulseaudio(mit allen Optionen, die Sie übergeben möchten). Hoffe das funktioniert!

adempewolff
quelle
Danke für die Antwort. Entschuldigung, ich bin ein bisschen verloren. Pulseaudio wird jedes Mal automatisch gestartet, wenn ich mich anmelde. Muss ich den Dienst beenden und erneut starten, um die Protokollstufe zu ändern?
Fragender
Ja, tut mir leid, ich habe vergessen, dass pulseaudio autospawns. Ich habe meine Antwort mit ein paar Problemumgehungen bearbeitet.
Adempewolff
Das scheint es zu tun. Ich erhalte jetzt Pulseaudio-Protokolle in Syslog.
Fragender
Froh, dass ich Helfen kann. Wenn Sie immer noch mehr (oder weniger) detaillierte Protokollierung benötigen, beachten Sie die Informationen zu den Protokollstufen 0-4 auf der Manpage und deren Bedeutung. 4 wird Ihnen wahrscheinlich zu viele Informationen geben, aber es könnte notwendig sein, einen wirklich kniffligen Fehler zu finden.
Adempewolff
5

Ich konnte einige Ausgaben von Pulse Audio in finden syslog. Ich glaube nicht, dass Pulse Audio eine separate Protokolldatei hat. Wenn Sie es debuggen möchten, müssen Sie wahrscheinlich die Autorespaw deaktivieren (der Prozess wird immer automatisch neu gestartet, wenn er abstürzt), ihn mit dem verboseParameter starten und die Ausgabe protokollieren.

Wie auch immer, so habe ich eine Ausgabe gefunden: cat /var/log/syslog* | grep -i pulse

RobinJ
quelle
Danke für diesen Code. Leider hat es für mich nichts zurückgegeben, was meiner Meinung nach nur bedeutet, dass Pulseaudio keine Ausgabe generiert.
Fragender
1
+1 und verlinkt auf deine Antwort von mir. Da ich bezweifle, dass pulseaudio ein benutzerdefiniertes Protokoll erstellen kann, --log-target=ist es meiner Meinung nach die beste Lösung, meine Antwort zu verwenden, um die Protokollierungsstufe anzupassen und zu überprüfen, ob sie gesendet wird, syslogund dann Ihre Antwort zu verwenden, um die Ergebnisse zu kämmen.
Adempewolff
1

In der Zwischenzeit kann sich pulseaudio 3.0 in Dateien anmelden.

Aus der pulseaudio --helpAusgabe:

--log-target={auto,syslog,stderr,file:PATH,newfile:PATH}
Daniel
quelle