This can be solved by maxima using the contrib_ode package. The equation eq is defined at line (%i2) and solved at line (%i3). Two solutions are returned as a list at line (%o3).
The solution method is given in the variable method as clairault, indicating it was solved using the Clairaut method.
(%i1) load('contrib_ode)$
(%i2) eq:y-log('diff(y,x))=x*'diff(y,x);
dy dy
(%o2) y - log(--) = x --
dx dx
(%i3) contrib_ode(eq,y,x);
dy dy
(%t3) y - log(--) = x --
dx dx
first order equation not linear in y'
%t x + 1
(%o3) [y = %c x + log(%c), [y - %t x - log(%t) = 0, - -------- = 0]]
%t
(%i4) method;
(%o4) clairault
The two solutions are returned as a list.
The first solution y = %c x + log(%c)
has a integration constant %c
The second solution
%t x + 1
[y - %t x - log(%t) = 0, - -------- = 0]]
%t
is a parametric solution with parameter %t. It is a singular solution as it doesn't have an integration constant %c. The parameter %t can be eliminated with a little algebra: first solve for %t in terms of x (%o7), then substitute this result to obtain (%o8).
(%i6) soln[2][2];
%t x + 1
(%o6) - -------- = 0
%t
(%i7) solve(soln[2][2],%t);
1
(%o7) [%t = - -]
x
(%i8) subst(%,soln[2][1]);
1
(%o8) y - log(- -) + 1 = 0
x