If your samba server is already running it might be a pain to restart it with debugging options.
So instead you can change the debug level live during operation:
SMB debug levels are ranked from 0 to 10: 0 lowest, least output, default — to — 10 highest, most output
# to see current debug level (you will notice the debug level of all of the samba modules)
# to set debug level 10 on all modules of samba
# this is equivalent of starting samba like so: smbd -d10
smbcontrol smbd debug 10
# to set debug level back to default of 0
# this is equivalent of starting samba default like so: smbd
smbcontrol smbd debug 0
# you can also set back the debug level back to 0 by restarting samba
How does it work?
smbcontrol is used to send signals to smbd, nmbd and winbindd. smbcontrol can change the debug level on a live samba server by sending it the signal.
Where to see the logs?
It all depends on where you have your logs going to. If they are sent to syslog then you can catch them in your syslog (or journalctl if your on systemd). Either way you will be able to see them in the defined samba log file.
If you started samba in interactive mode (-i) where its not running as a daemon but live on a shell, then you will see the output on the shell where you launched samba.
Check you samba configs for keywords like “log file” and “syslog” and “log level” to see where your default samba logs go. Here you go: http://www.oreilly.com/openbook/samba/book/ch04_08.html
An extra note about smbcontrol and debug command? It can be used with smbd and winbindd and also nmbd (not just smbd).
From the man page:
Set debug level to the value specified by the parameter. This can be sent to any of the destinations. If this message is sent to either the smbd or winbindd daemons, the parent process will rebroadcast the message to all child processes changing the debug level in each one.