logtodo is a convenient command line time logger. It is the second incarnation of a tool I have been using daily since 1988, or so, to distill how much time I spend on projects and what (I used) to charge customers.

When starting work you type:

logtodo -t
When stopping work on a (mini) project type:
logtodo -b Business -p Project -m 'Description of task'
The -t option is available for adding tags at a later time.

That is all there is to it!

Furthermore statistics can be displayed based on business, project and time filters. E.g.:

logtodo -l -b Business -d '01/01/2001-01/02/2001'
lists the statistics of your work log for one particular business (read client).
logtodo -x -a -b Business
lists a monthly overview with compiled groups of information in a file that can be exported to a spreadsheet.

logtodo has all the virtues of a Unix text based tool. You can edit and parse the logs directly, split them into units etc.

Thanks to Sourceforge for hosting it.




logtodo 1.04 by Pjotr Prins GPL (c) 2000,2001
* /home/wrk/cvs/pjotr/todo/stamp_2001.txt

       See also http://logtodo.sourceforge.net/

       -h  Help
       -b  Business name (one word only)
       -p  Project name (one word only)
       -m  Add message
       -c  Execute CVS with command (and -m message)
       -t  Set time for stamp using date string
       -d  Set date range for output
       -e  Edit stampfile
       -q  Quit: insert 'pause' tag (usually not needed)
       -l  List
       -x  List project based tabbed monthly totals (export option)
       -f  Full list
       -r  List raw data
       -o  Write GNU Plot file
       -i  Input file
       -a  Use aliases

       Without parameters a 'start' tag will be inserted

       For example:

       logtodo                                         : starts timing
       logtodo -p Proj1 -m 'Meeting w. John'           : normal tag
       logtodo -c ci -p Proj1 -m 'Update entry'        : cvs check-in
       logtodo -t '10/12/00 00:22' -m 'Left office'    : timed tag
       logtodo -p Manage -t '8:00' -m 'Read E-mail'    : timed tag
       logtodo -l                                      : list
       logtodo -f                                      : full list
       logtodo -f -d '01/04-01/06'                     : full list w. date range
       logtodo -e                                      : edit
       logtodo -o gnuplot

       Files: ~/.logtodorc can contain:



The file .logtodorc takes two fields at this point:

stampfile points to the file which contains the stamp tags. For example:


timeadjust adjusts the time when the host you work on is in a different timezone. For example:

will add one hour (3600 seconds) to every time stamp.


Download logtodo (right-click with the mouse on the link).


Installation is easy. You'll need Perl and the Time::ParseDate package. The package can be installed from the command line with:
perl -MCPAN -e 'CPAN::Shell->install(Time::ParseDate)'
Create a file named .logtodorc in your home directory and add the entry:
And give it a shot.


At some point I plan to add gnuplot graphics.


UK date order has been hard-coded. It should be based on the locale. Nevertheless an option in .logtodorc would be useful to override that behaviour:
I leave that for a US citizen ;-).


Visit the logtodo project summary for more information.

The Author

Pjotr Prins is actively involved in a number of projects. Most importantly ROCK Linux and the NLUUG E-zine.

$Id: index.html,v 1.4 2001/11/15 17:34:35 wrk Exp $