As a workaround to the lack of this in QGIS you could open the .dbf file of your shapefile set (export it to shapefile first if you are using a different format) and open it in Libre Office Calc (or openoffice, MS Excel 97/2003) to calculate the field in a new column with one of the following formulas:
=LOG(Number,Base)
=LOG10(Number)
=LN(Number)
You can use practically all spreadsheet functions this way as long your feature count doesn't go into the millions and you don't reorder or delete any rows.
Make sure the header of the column is DBF compatible
- field Name (10 characters max)
- data type (most likely N for numeric or C for character strings)
- field length (including decimals)
- number of decimals (optional for N)
Example:
VALUE_LOG,N,24,12
Backup the original .dbf before you make any saves and save/replace the opened one as a dBase (.dbf) file.
One .dbf may only be opened for editing by one program at a time so make sure you unload the shapefile first in qgis before loading it in calc and vice versa.