Run this in the msdb database. It will show which table(s) are taking up most of the space. a 6 GB msdb database is odd.
select object_name(p.object_id), p.index_id, f.name, sum(total_pages)/128, convert(varchar(10), getdate(), 101), count(*) as partitions
from sys.partitions p join
sys.allocation_units a on p.partition_id = a.container_id join
sys.filegroups f on a.data_space_id = f.data_space_id
group by p.object_id, p.index_id, f.name
order by sum(total_pages)/128 desc
To physically shrink the logfile, you can simply run DBCC SHRINKFILE (2, 1000), but I am unconvinced it will remain small for very long, as something has ballooned it to 16 GB, and I am not sure what that could be.
Not if it is in SIMPLE recovery mode. All that needs to be done is to make sure that the high Water Mark of the log file is low enough. If you don't get all the space back in the first run, run CHECKPOINT a few times to force the log to switch to a lower position in the file.