@@ -12,6 +12,10 @@ pub fn convert_(
1212 output : Option < PathBuf > ,
1313 dpi : f32 ,
1414) -> Result < ( ) , String > {
15+ if let Ok ( ( ) ) = log:: set_logger ( & LOGGER ) {
16+ log:: set_max_level ( log:: LevelFilter :: Warn ) ;
17+ }
18+
1519 // Prepare the font database.
1620 let mut fontdb = fontdb:: Database :: new ( ) ;
1721 fontdb. load_system_fonts ( ) ;
@@ -39,3 +43,44 @@ pub fn convert_(
3943
4044 Ok ( ( ) )
4145}
46+
47+ // Taken from resvg
48+ /// A simple stderr logger.
49+ static LOGGER : SimpleLogger = SimpleLogger ;
50+ struct SimpleLogger ;
51+ impl log:: Log for SimpleLogger {
52+ fn enabled ( & self , metadata : & log:: Metadata ) -> bool {
53+ metadata. level ( ) <= log:: LevelFilter :: Warn
54+ }
55+
56+ fn log ( & self , record : & log:: Record ) {
57+ if self . enabled ( record. metadata ( ) ) {
58+ let target = if !record. target ( ) . is_empty ( ) {
59+ record. target ( )
60+ } else {
61+ record. module_path ( ) . unwrap_or_default ( )
62+ } ;
63+
64+ let line = record. line ( ) . unwrap_or ( 0 ) ;
65+ let args = record. args ( ) ;
66+
67+ match record. level ( ) {
68+ log:: Level :: Error => {
69+ eprintln ! ( "Error (in {}:{}): {}" , target, line, args)
70+ }
71+ log:: Level :: Warn => {
72+ eprintln ! ( "Warning (in {}:{}): {}" , target, line, args)
73+ }
74+ log:: Level :: Info => eprintln ! ( "Info (in {}:{}): {}" , target, line, args) ,
75+ log:: Level :: Debug => {
76+ eprintln ! ( "Debug (in {}:{}): {}" , target, line, args)
77+ }
78+ log:: Level :: Trace => {
79+ eprintln ! ( "Trace (in {}:{}): {}" , target, line, args)
80+ }
81+ }
82+ }
83+ }
84+
85+ fn flush ( & self ) { }
86+ }
0 commit comments