Using log-scale for bar charts is probably not a good idea due to the lack of a true zero.
However, given skewed data, there doesn't seem to be much alternative ... otherwise smaller values get too compressed for comparison.
Using xbar in pgfplots, my idea was to use log scale for the x-axis, but indicate the zero issue using a discontinuity in the axis.
Code:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[
axis x discontinuity=crunch,
log basis x=2,
log origin=infty,
y post scale=0.4,
legend style={at={(0.5,1.1)},anchor=south},
legend columns=4,
ytick={one,two,eight,sixty-four},
symbolic y coords={one,two,eight,sixty-four},
bar width=7pt,
enlarge y limits=0.5
]
\addplot+[xbar] coordinates {(1,one)};
\addlegendentry{one}
\addplot+[xbar] coordinates {(2,two)};
\addlegendentry{two}
\addplot+[xbar] coordinates {(8,eight)};
\addlegendentry{eight}
\addplot+[xbar] coordinates {(64,sixty-four)};
\addlegendentry{sixty-four}
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
Output:

The output looks fine (with a little further non-MWE tweaking), but I receive two error messages upon build:
Errors:
! Missing number, treated as zero.
<to be read again>
\pgfplots@data@scale@trafo@SHIFT@x
l.30 \end{semilogxaxis}
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
! Illegal unit of measure (pt inserted).
<to be read again>
\pgfplots@data@scale@trafo@SHIFT@x
l.30 \end{semilogxaxis}
I guess this is to do with the lack of a "true origin" to shift the discontinuity from on the axis. However, the output achieves what I want. Hence ...
Can anyone suggest a method to fix the error? Otherwise, how could I suppress such errors?
(I think I would also like to label the x origin with "0" if anyone had suggestions for that.)


