Yes, bug should be logged with proper steps with which you got that issue. Also add a note that it is not constantly reproducible. In this way bug will be there in bug tracking tool and it will be safe your side.
Well it is your choice to open or not If you feel so open it.
I will tell you what I did and will do.
If there is a bug and I found it before, I can reproduce it again (I know I need some extra time).
First condition your are testing in an environment that has not have a good recording capability.
I do not rush and report when I face a error. First I try to reproduce it again. If I can, then I will just write what is the steps to produce and report the bug. If not then there is a problem. I write down the error and what I did at that time and continue with my tests. I need to finish my work first. I do not what to find myself in a position like "ok I identify a bug but spend a day and did not do what I need to do." During this time I keep in mind about the error and if I face the error again I will write down what happened again. When I finish my workload, (If I need) I get some more resource allocation(reserve the system for more testing maybe) to investigate this error. Try to figure out when the error occurs like "when this module uses x amount of memory system starts to give this error" or "when the system enters to this mode than comes back to normal operation it starts producing errors for some inputs" .. try to figure out cause so I can understand and reproduce. If I can not still find a way to repeat and get the error from time to time, I can ask a developer to come and help me.
I can hear some of you asking "why I need to dig an error this much" well answer is quite simple "If you can not repeat the error, developers will never". If you are talking about quality, you need to be a team as a whole. Not only a good test team so you need to help each other. For a problem like this I remember calling two developers, one system engineer and one test engineer to figure out the error and hopefully we did. Well to do this you need to have a good relation with other teams. This is out of scope of this subject but just a reminder, developers never like the reports like "there is an error in this part or this part is not working or I find an error that I can not reproduce or I see this error but I do not know why" give them like " I did this and that and get the error" so they can figure out the problem and find a solution.
Second condition your are testing in an environment that has a good recording capability (debugging ability or recording actions and variables).
Well nothing to do much. Just take note of the time and report the error with the record. They just need decompose the record and figure out what happened and hopefully solve the problem.
If you were not testing in this mode (maybe you have different levels of recording) after you finish the testing you can just switch this mode and try to reproduce the error and report the error with record, even without finding out steps.
Last word, this kind of problems is the best time to be asking good recording capability. If you get good recording capability then you do not need to worry about "what I did to get this error" and focus on finding errors rather then what I am doing.
1. Write down the Steps when u see the bug(may not be reproducible)
2. When you find the bug, take the screen shot or logs when applicable.
3. Mention the Build No., application version, Firefox/IE version(if applicable)
4. Write the percentage of the bug reproducibility like example: 1/2/3/4/5 times failed out of 10
Reproducibility : Intermittent