Manipulate trace Optim.jl

Hi,

I am using Optim.jl to minimize a certain objective function which includes some secondary calculations. I use

 algo_ = LBFGS(;alphaguess =InitialHagerZhang(), linesearch = LineSearches.StrongWolfe())
    a = Optim.optimize(
        x -> Objective(x, "opt"),
        Gradient!,
        X_vec,
        method = algo_;
        g_tol=1e-5,
        inplace = true,
        show_trace = true,
        store_trace=true,
    )

that gives:

Iter     Function value   Gradient norm 
     0     1.402120e+02     5.798513e+01
 * time: 0.0009999275207519531
     1     1.215444e+02     2.696291e+01
 * time: 3.1009998321533203
     2     9.729868e+01     2.400409e+01
 * time: 7.192999839782715
     3     9.402650e+01     6.969861e+00
 * time: 8.806999921798706
     4     9.353115e+01     4.200973e+00
 * time: 9.63699984550476
     5     9.285567e+01     5.642217e+00
 * time: 10.458999872207642
     6     6.870792e+01     9.093026e+00

What I eventually want is to manipulate the trace a bit to show an additional column containing some secondary calculations from inside of the objective function. I tried to add a print line inside, but as expected, it prints every time the function is called by the line-search algorithm, leading to extra unnecessary information. Any suggestion?