The solution is to write a program that appends the proper log entry to the file, and then set the program's setuid bit. Then set the permission of the file so that the user does not have write access, but you do (0644 or 0600). When the user executes the program, he/she will assume your user id, meaning that he/she can append to the log file. Thus, you have granted restricted writing priviledges to the user.
The solution is to write a program that reads just the first line of the file, and then set the program's setuid bit. Then set the permission of the file so that the user does not have read access, but you do (i.e. 0600 or 0400). When the user executes the program, he/she will assume your user id, meaning that he/she can read the first line of the file. Thus, you have granted restricted reading priviledges to the user.