I like the idea of doing a syslogd implementation, since I agree that it would probably be simpler to implement in userspace. Looking even at the ramlog implementation, I'm not sure how using networking operations for something like a low-level `putc` would be achieved easily. I might read into netconsole a bit further just to get an idea though.
Thank you for the pointers everyone! Matteo On Tue, Jun 3, 2025 at 9:46 PM Xiang Xiao <xiaoxiang781...@gmail.com> wrote: > Two approach could achieve the goal: > > 1. Utilize ramlog and implement all network stuff in userspace, like > syslogd(https://linux.die.net/man/8/syslogd). You can even implement > the > same protocol as syslogd, so PC tools can be reused directly. > 2. Do all network stuff inside the kernel directly like Linux > netconsole( > https://docs.kernel.org/networking/netconsole.html) > > The first approach is simple, but consumes more memory and can't send out > the final panic log. On the other hand, the second needs to improve the > netdev driver model and NIC driver adaptation, but fix all shortcomings in > the first one. > > On Wed, Jun 4, 2025 at 5:01 AM Matteo Golin <matteo.go...@gmail.com> > wrote: > > > Hello everyone, > > > > I was taking a look at the different syslog output options, and I noticed > > that there are a variety of different sinks > > (character devices, CDCACM, RAM, etc). However, I was thinking that it > > would be useful to have a network sink for > > syslog, so that logs could be sent over a network interface and collected > > elsewhere. This might be useful for systems > > that have small amounts of physical storage but are network connected, or > > have a very long up-time. > > > > What do you think about an implementation of syslog for network capable > > devices that achieves this? Are there any big > > hurdles I might not be considering (like setting up a connection, using > > UDP/TCP, etc)? There would probably have to be a > > decently large buffer to avoid slowing down code with blocking send > calls. > > > > What do you think? > > > > -- > > Matteo Golin > > >