C# (.NET Core), 181 162162 160 bytes
input.GroupBy((l)=>ll=>l.Split()[0]).ToList().ForEach((g)=>{using(var sw = new StreamWriter(g.Key.Trim('[').Trim(']')+".log")){foreach(var v in g)sw.WriteLine(v);}});
C# (Visual C# Interactive Compiler), 179 bytes
i=>i.GroupBy((l)=>{return l.Split(' ')[0];}).ToList().ForEach((g)=>{using(var sw = new StreamWriter(g.Key.Trim(new char[]{'[',']'})+".log")){foreach(var v in g)sw.WriteLine(v);}})
I'm not sure the first solution is code gulf compliant, so the second solution uses a lambda expression.