Well previously I tried adding "-logfile" there without and then with the 'logs folder' (D:\7 Days To Die\Logs) and still no logfile.
Just to make sure: That "-logfile" NEEDS to be followed by a path. Using it without a path, my even be the reason why you don't get one.
It's not a switch to turn the logfile on or off, it is a parameter that specifies the path.
Next one, and i think that's the point and also the reason why the dedi.bat works:
If the path contains spaces, you need to quote it. (The (windows) internal reason is, because arguments are separated by spaces, so if you do it like this, 7d2d.exe sees 5 separate arguments. So in this case it tries to put the logfile at D:\7 because "Days", "To" and "Die\Logs" are seen as separate arguments, but the game doesn't know them)
So literally you need to do this:
-logfile "D:\7 Days To Die\Logs"
The reason why the dedi.bat probably works is, because it doesn't use the command line parameter but an environment variable. And maybe this set command is able to handle spaces.
set LOGFILE=D:\7 Days To Die\Logs\%LOGNAME%%LOGTIMESTAMP%.txt
You can also try to add a permanent environment variable to your system by adding it to the windows environment settings. (Can't explain how to get there, because i've still booted linux

) That should for sure have no problem with spaces.
You can always check if an environment variable is set by using "echo %LOGFILE%" in a command prompt. If this returns the full path, it is set correctly.
Generic approach if you have trouble with something that uses any paths, ALWAYS try using paths without any spaces first.
Edit:
The environment variable from the script also contains the filename, as you can see. I'm not sure whether the logfile argument also needs the filename, or just the path and uses an auto-generated filename then. So if it still doesn't work, probably also try the parameter with a filename added. Something like
Code:
-logfile "D:\7 Days To Die\Logs\myLogfile.txt"