To remove the log in link, I went right to the source which is the function wp_loginout in /wp-includes/general-template.php. The code is simple enough:
function wp_loginout() {
if ( ! is_user_logged_in() )
$link = '';//<a href="' . get_option('siteurl') . '/wp-login.php">' . __('Log in') . '</a>';
else
$link = '<a href="' . get_option('siteurl') . '/wp-login.php?action=logout">' . __('Log out') . '</a>';
echo apply_filters('loginout', $link);
}
I simply replaced the value of $link with ” in the if part of the conditional and commented out the original value. This way when I’m logged in I still get a convenient log out link that of course only an admin who has logged in will see. You just need to keep track of the change with a comment or something so you check for it when you upgrade which you would have to do with any change whether it’s in your theme folder or not. You may also want to remove the function call from the unordered list it’s in just to avoid an empty list item. Not that it causes a validation error, it’s just sloppy. This is just an alternative to alexleonard’s removal of the entire line which is much simpler.