Prechádzať zdrojové kódy

Added setLogLevel() method to OSMD. Used in demo app.

Signed-off-by: Sebastian Haas <sebastian@haas.tech>
Sebastian Haas 8 rokov pred
rodič
commit
8e67d7e7b0
3 zmenil súbory, kde vykonal 32 pridanie a 9 odobranie
  1. 1 4
      demo/demo.js
  2. 0 3
      demo/index.html
  3. 31 2
      src/OSMD/OSMD.ts

+ 1 - 4
demo/demo.js

@@ -52,10 +52,6 @@
         showCursorBtn = document.getElementById("show-cursor-btn");
         hideCursorBtn = document.getElementById("hide-cursor-btn");
 
-        // Set up logging
-        log.setDefaultLevel('trace');
-        log.debug("Logging system set up.");
-
         // Hide error
         error();
 
@@ -84,6 +80,7 @@
 
         // Create sheet object and canvas
         sheet = new window.OSMD(canvas);
+        sheet.setLogLevel('info');
         document.body.appendChild(canvas);
 
         // Set resize event handler

+ 0 - 3
demo/index.html

@@ -13,9 +13,6 @@
     <!-- Include code and styles for this demo -->
     <script src="demo.js"></script>
     <link href="demo.css" media="all" rel="stylesheet" />
-
-    <!-- Loglevel library -->
-    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/loglevel/1.4.1/loglevel.min.js"></script>
   </head>
   <body>
     <h1>OpenSheetMusicDisplay Demo</h1>

+ 31 - 2
src/OSMD/OSMD.ts

@@ -85,7 +85,7 @@ export class OSMD {
                 let parser: DOMParser = new DOMParser();
                 content = parser.parseFromString(str, "text/xml");
             } else if (str.length < 2083) {
-                // Assume now 'str' is a URL
+                // Assume now "str" is a URL
                 // Retrieve the file at the given URL
                 return ajax(str).then(
                     (s: string) => { return self.load(s); },
@@ -115,7 +115,7 @@ export class OSMD {
         this.sheet = reader.createMusicSheet(score, "Unknown path");
         this.graphic = new GraphicalMusicSheet(this.sheet, calc);
         this.cursor.init(this.sheet.MusicPartManager, this.graphic);
-        log.info("Loaded sheet successfully.");
+        log.info(`Loaded sheet ${this.sheet.TitleString} successfully.`);
         return Promise.resolve({});
     }
 
@@ -150,6 +150,35 @@ export class OSMD {
     }
 
     /**
+     * Sets the logging level for this OSMD instance. By default, this is set to `warn`.
+     *
+     * @param: content can be `trace`, `debug`, `info`, `warn` or `error`.
+     */
+    public setLogLevel(level: string): void {
+        switch(level) {
+            case "trace":
+                log.setDefaultLevel(LogLevel.TRACE);
+                break;
+            case "debug":
+                log.setDefaultLevel(LogLevel.DEBUG);
+                break;
+            case "info":
+                log.setDefaultLevel(LogLevel.INFO);
+                break;
+            case "warn":
+                log.setDefaultLevel(LogLevel.WARN);
+                break;
+            case "error":
+                log.setDefaultLevel(LogLevel.ERROR);
+                break;
+            default:
+                log.warn(`Could not set log level to ${level}. Using warn instead.`);
+                log.setDefaultLevel(LogLevel.WARN);
+                break;
+        }
+    }
+
+    /**
      * Initialize this object to default values
      * FIXME: Probably unnecessary
      */