I like to make stuff out of logs, and lately I've done a couple of projects where I needed the ends to be perfectly flat and parallel.
For most log projects you could probably just use a chainsaw and get the ends close enough.
However, when "close enough" isn't good enough, here's the method I use. This requires some scrap plywood and basic tools like a router, drill, level, and clamps.
Step 1: Make a Leveling Jig
The first step is to put together a simple leveling router jig. I made all of these pieces out of scrap plywood to use with my router. If you don't have a router, I've had this Porter Cable one for years and love it.
The sizes for the pieces are noted in the photos. This kit can accommodate a log up to 12 inches in diameter.
A long, flat sled is made to which a router can be fastened. This was made from a piece of 1/2" plywood, with two stiffener pieces that were glued and screwed in place along the sides. These keep the main board from flexing and bending.
Two other straight pieces of plywood are used as guide rails for the sled. These are screwed directly to the log itself.
I actually use a third piece as a clamped-on rail, which simplifies the process of getting the rails perfectly level. How these are all used is shown in detail in the following steps.
Step 2: Get a Log, Shim It Plumb
Now that you have a router jig ready, you need to position and shim up your log so the sides are as plumb (vertical) as possible. I shimmed mine up with some paint stir sticks.
Once you have it where you want it, be careful not to move it at all.
This log I'm using is several years old, bone-dry and rock-hard. Not sure of the species.
Step 3: Attach First Rail
The first rail is attached to the log with screws.
I have pre-drilled and countersunk a pair of clearance holes in each of my guide rails. These allow screws to be driven into the log to fasten the rails quickly.
The rail is positioned so it is about 1/8" to 1/4" above the highest point of the log and a 2" screw is driven into the log through one of the rail's clearance holes.
With a level, the rail is pivoted on the first screw until it is perfectly level. For the second screw, I prefer to pre-drill a hole in the log to ensure accuracy. This is done through the clearance hole in the rail, and then a second 2" screw is driven into the log to lock the rail in place.
If this rail is not perfectly level, I pull the screws out and try again. Getting this first rail perfectly level is crucial.
Step 4: Attach Second Rail
Now you need to attach the second rail.
You could try to fasten it perfectly level with the first, but that requires some kind of magic I do not possess.
. . . So I actually fasten it anywhere lower than the first rail. It does not need to be level; only completely secure and with no part any higher than the first rail.
The third rail piece is clamped to the second one. Now a level is used to finely adjust the third rail until it is perfectly level with the first rail.
When it is level, make sure those clamps are on there good and tight.
Step 5: Begin Routing!
I use a 3/4" straight router bit for this. As suggested in the comments, a surfacing bit is recommended to achieve a much smoother finish.
I position the bit so it will remove about 1/4" of material from the highest point on the log end.
The router sled is used to guide the bit over the log end in careful passes to remove material. I have found that working the sled back-to-front works best, pulling the sled toward me for each pass beginning on the right side of the log and moving to the left. I don't remove any material on the return-to-back pass. This way, the majority of chips and sawdust shoot to the rear, rather than into my face.
However, I still wear a full-faced protective shield for this--the kind you'd use when working on a lathe. This is the one I have, and it works really well.
As viewed from the top of the router, the bit rotates in a clockwise rotation. The type of passes I've described above are called "climb" cuts, which will tend to pull into the yet-to-be removed material if you're moving too fast and not holding the sled firmly, or if you try to remove more than about 1/2 the width of the bit in material with each pass. These are things to keep in mind that will help you achieve a cleaner finish.
Remove wood in layers (I suggest only up to 1/4" at at time, at most) until the top end of the log is perfectly flat.
Step 6: Remove Rails, Trim Remaining Wood Bits
When the top of the log is perfectly flat you can remove the guide rails.
I used a flush-cutting pull-saw to remove the remaining bits of wood on the sides.
Step 7: Repeat for Other End
Now you simply flip the log over, and repeat steps 3 though 6.
I'm working on a table that is perfectly level, so there is no need to shim the end that is now facing down.
However, if you are working on a surface that is anything but perfectly level you may need to level and securely shim the log again.
Then route away!
Step 8: Done & Clean Up
When the second end of the log is done, you should have two ends that are perfectly flat and parallel to one another.
There is always a lot of sawdust and wood chips to clean up, but it's worth it!