Please refer Section "5.4.5 Buffer Status Reporting" of Seci 36.321.
it would not be easy to make very clear sense out of just reading the specification. However, just big picture is as follows : First criteria is to check whether it is Padding BSR or Regular/Periodic BSR and once it is determined, apply following rule.
For Regular and Periodic BSR,
if( the number of LCG with allocated data > 1) --> Long BSR
else --> Short BSR
For Padding BSR,
if( the number of padding bit >= the size of the Short BSR plus its sub-header
&& the number of padding bit <= the size of the Long BSR plus its sub-header)
{
if( the number of LCG with allocated data > 1) --> Truncated BSR
else --> Short BSR
} else {
--> Long BSR
}
Source: http://www.sharetechnote.com/