Android does not create persistent logs. I assume because at the time Android was developed flash memory was small, expensive and the problem of flash were out because of too many writes lead to the decision to not use persistent logs in Android. So you only have logcat at your service unless specific apps write their own log when active.
logcat
logcat uses a cyclic buffer so the time span the logcat messages cover depends on the number of messages and of course the buffer size used by logcat.
You can change the logcat buffer size in Android developer options menu. The maximum setting is for example on my phone 8MB.
As Android has no other logs this is the your only chance on an unrooted device or without additional hardware.
With root
On rooted phones you could use an app to access all logcat messages and save them periodically. I don't know such an app but a Termux script running with root permissions this may be possible without much programming.
Using external hardware
There are micro computers in USB stick format which could be equipped with a Linux system and adb components so that you could carry it with you and use it to extract and save logcat messages every time you connect it to your phone.