This 90% a software problem, the electronic hardware side is trivial. Its called "data aquisition". You can buy cards to go into an old desk top PC to do this AND they would come with software.
To do it yourself (1), you will need to get a suitable program to run on a PC and use the pins on the parallel printer port as your input terminals. - That will make it difficult!
To do it yourself (2), you will have to programme a microprocessor, this will involve in many modules of software and usually a separate real time clock chip. Professional software writers normally buy these modules in.
To do it yourself (3), you could do it all in hardware, sort of by running a real time clock, and when an input changes putting the real time clock time and the input number into a memory chip. As part of the kit you also make a decoder, so you can go from memory location to memory location and decode the numbers, so as to give you time and input numbers, using , say, 01 for input 1 on, and 11 for input 1 off, 02 for input two coming on, 12 for 2 going off. . .
Frank